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