UNPKG

@snowflake-so/safe-saber-walletkit

Version:

Snowflake Safe forked version of @saberhq/use-solana package. Used for integration purpose.

44 lines (43 loc) 2.19 kB
import type { Broadcaster, PendingTransaction, SignAndBroadcastOptions, Wallet } from '@saberhq/solana-contrib'; import { PublicKey } from '@saberhq/solana-contrib'; import type { Connection, PublicKey as SolanaPublicKey, Transaction } from '@solana/web3.js'; export interface WalletAdapter<Connected extends boolean = boolean> extends Omit<Wallet, 'publicKey'> { publicKey: Connected extends true ? SolanaPublicKey : null; autoApprove: boolean; connected: Connected; connect: (args?: unknown) => Promise<void>; disconnect: () => void | Promise<void>; on(event: 'connect' | 'disconnect', fn: () => void): void; /** * Signs and broadcasts a transaction. * * @param transaction * @param broadcaster * @param options */ signAndBroadcastTransaction(transaction: Transaction, connection: Connection, broadcaster: Broadcaster, opts?: SignAndBroadcastOptions): Promise<PendingTransaction>; } export declare type ConnectedWallet = WalletAdapter<true> & Wallet; export declare type WalletAdapterBuilder = (providerUrl: string, endpoint: string) => WalletAdapter; /** * Wallet adapter wrapper with caching of the PublicKey built-in. */ export declare class WrappedWalletAdapter<Connected extends boolean = boolean> implements Omit<WalletAdapter<Connected>, 'publicKey'> { readonly adapter: WalletAdapter<Connected>; constructor(adapter: WalletAdapter<Connected>); private _prevPubkey; private _publicKeyCached; get publicKey(): Connected extends true ? PublicKey : null; get autoApprove(): boolean; get connected(): Connected; signAndBroadcastTransaction(transaction: Transaction, connection: Connection, broadcaster: Broadcaster, opts?: SignAndBroadcastOptions): Promise<PendingTransaction>; signTransaction(transaction: Transaction): Promise<Transaction>; signAllTransactions(transaction: Transaction[]): Promise<Transaction[]>; connect(args?: unknown): Promise<void>; disconnect(): Promise<void>; on(event: 'connect' | 'disconnect', fn: () => void): void; } export declare type ConnectedSafeWallet = ConnectedWallet & { isSafeApp?: boolean; walletPublicKey?: PublicKey; };