@snowflake-so/safe-saber-walletkit
Version:
Snowflake Safe forked version of @saberhq/use-solana package. Used for integration purpose.
32 lines (31 loc) • 1.81 kB
TypeScript
import { ReactNode } from 'react';
import type { DefaultWalletType, WalletTypeEnum } from '.';
import type { UseSolanaError } from './error';
import type { ConnectionArgs, ConnectionContext } from './utils/useConnectionInternal';
import type { UseProvider, UseProviderArgs } from './utils/useProviderInternal';
import type { UseWallet, UseWalletArgs } from './utils/useWalletInternal';
export interface UseSolana<WalletType extends WalletTypeEnum<WalletType> = typeof DefaultWalletType, Connected extends boolean = boolean> extends ConnectionContext, UseWallet<WalletType, Connected>, UseProvider {
}
export interface UseSolanaArgs<WalletType extends WalletTypeEnum<WalletType> = typeof DefaultWalletType> extends Omit<ConnectionArgs, 'storageAdapter'>, Partial<Pick<UseWalletArgs<WalletType>, 'onConnect' | 'onDisconnect' | 'storageAdapter' | 'walletProviders'>>, Pick<UseProviderArgs, 'broadcastConnections' | 'confirmOptions'> {
/**
* Called when an error is thrown.
*/
onError?: (err: UseSolanaError) => void;
}
declare type ProviderProps<WalletType extends WalletTypeEnum<WalletType>> = UseSolanaArgs<WalletType> & {
children: ReactNode;
};
/**
* Provides a Solana SDK.
*
* Note: ensure that `onConnect` and `onDisconnect` are wrapped in useCallback or are
* statically defined, otherwise the wallet will keep re-rendering.
* @returns
*/
export declare const SolanaProvider: <WalletType extends WalletTypeEnum<WalletType> = typeof DefaultWalletType>({ children, ...args }: ProviderProps<WalletType>) => JSX.Element;
/**
* Fetches the loaded Solana SDK.
*/
export declare const useSolana: <WalletType extends WalletTypeEnum<WalletType>>() => UseSolana<WalletType, boolean>;
export declare const useSnowflakeSolana: () => UseSolana<WalletTypeEnum<any>, boolean>;
export {};