UNPKG

@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
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 {};