UNPKG

@juweber99/vigee-wallet-connector

Version:

vigee library to allow persisted wallet connection across multiple wallets

57 lines (56 loc) 1.87 kB
import { Transaction, TransactionSigner } from "algosdk"; import { SignedTxn } from "."; export interface WalletTransaction { txn: string; signers?: Array<string>; authAddr?: string; msig?: { version: number; treshold: number; addrs: Array<string>; }; } export declare enum Wallets { PERA = "PERA", MYALGO = "MYALGO", ALGOSIGNER = "ALGOSIGNER" } export declare enum Networks { TESTNET = "TestNet", MAINNET = "MainNet", VIGEE_DEV = "vigee" } export declare enum StorageKeys { ACCOUNT_LIST = "acct-list", ACCOUNT_PREFERENCE = "acct-preference", WALLET_PREFERENCE = "wallet-preference", NETWORK_PREFERENCE = "network-preference" } export declare type WalletConstructor<T extends IWallet> = new (network: Networks, wallet: Wallets, accountIdx?: number, popupPermissionCallback?: PopupPermissionCallback) => T; export interface IWallet { network: Networks; walletChoice: Wallets; _accounts: string[]; defaultAccountIndex: number; displayName(): string; getSelectedAccountAddress(): string; } export interface WalletImplementation extends IWallet { img(inverted: boolean): string; connect(disconnectCallback?: Function): Promise<boolean>; disconnect(): void; isConnected(): boolean; reconnect(): Promise<Array<string>>; signTxn(txns: Transaction[]): Promise<SignedTxn[] | Uint8Array[]>; signBytes(b: Uint8Array): Promise<Uint8Array>; signTeal(teal: Uint8Array): Promise<Uint8Array>; getSigner(): TransactionSigner; getAccounts(): string[]; } export interface PermissionResult { approved(): Promise<SignedTxn[]>; declined(): Promise<SignedTxn[]>; } export interface PopupPermissionCallback { request(permissionResult: PermissionResult): Promise<SignedTxn[]>; }