UNPKG

@pontem/aptos-wallet-adapter

Version:
119 lines 4.24 kB
import { MaybeHexString, Types } from 'aptos'; import EventEmitter from 'eventemitter3'; declare global { interface Window { hippo: any; } } export { EventEmitter }; export declare type PublicKey = MaybeHexString; export declare type Address = MaybeHexString; export declare type AuthKey = MaybeHexString; export interface AccountKeys { publicKey: PublicKey | PublicKey[] | null; address: Address | null; authKey?: AuthKey | null; minKeysRequired?: number; } export interface WalletAdapterEvents { connect(publicKey: PublicKey): void; disconnect(): void; error(error: any): void; success(value: any): void; readyStateChange(readyState: WalletReadyState): void; networkChange(network: WalletAdapterNetwork): void; accountChange(account: string): void; } export declare enum WalletReadyState { /** * User-installable wallets can typically be detected by scanning for an API * that they've injected into the global context. If such an API is present, * we consider the wallet to have been installed. */ Installed = "Installed", NotDetected = "NotDetected", /** * Loadable wallets are always available to you. Since you can load them at * any time, it's meaningless to say that they have been detected. */ Loadable = "Loadable", /** * If a wallet is not supported on a given platform (eg. server-rendering, or * mobile) then it will stay in the `Unsupported` state. */ Unsupported = "Unsupported" } export declare type WalletName<T extends string = string> = T & { __brand__: 'WalletName'; }; export declare type NetworkInfo = { api?: string; chainId?: string; name: WalletAdapterNetwork | undefined; }; export declare enum WalletAdapterNetwork { Mainnet = "mainnet", Testnet = "testnet", Devnet = "devnet" } export interface WalletAdapterProps<Name extends string = string> { name: WalletName<Name>; url: string; icon: string; readyState: WalletReadyState; connecting: boolean; connected: boolean; publicAccount: AccountKeys; network: NetworkInfo; deeplinkProvider?: (data: { url: string; }) => string; onAccountChange(): Promise<void>; onNetworkChange(): Promise<void>; connect(): Promise<void>; disconnect(): Promise<void>; signAndSubmitTransaction(transaction: Types.TransactionPayload, options?: any): Promise<{ hash: Types.HexEncodedBytes; }>; signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array>; signMessage(message: string | SignMessagePayload | Uint8Array): Promise<string | SignMessageResponse>; } export declare type WalletAdapter<Name extends string = string> = WalletAdapterProps<Name> & EventEmitter<WalletAdapterEvents>; export interface SignMessagePayload { address?: boolean; application?: boolean; chainId?: boolean; message: string; nonce: string; } export interface SignMessageResponse { address: string; application: string; chainId: number; fullMessage: string; message: string; nonce: string; prefix: string; signature: string; } export declare abstract class BaseWalletAdapter extends EventEmitter<WalletAdapterEvents> implements WalletAdapter { abstract name: WalletName; abstract url: string; abstract icon: string; abstract get readyState(): WalletReadyState; abstract get publicAccount(): AccountKeys; abstract get network(): NetworkInfo; abstract get connecting(): boolean; get connected(): boolean; abstract connect(): Promise<void>; abstract disconnect(): Promise<void>; abstract signAndSubmitTransaction(transaction: Types.TransactionPayload): Promise<{ hash: Types.HexEncodedBytes; }>; abstract signTransaction(transaction: Types.TransactionPayload): Promise<Uint8Array>; abstract signMessage(message: string | SignMessagePayload | Uint8Array): Promise<string | SignMessageResponse>; abstract onAccountChange(): Promise<void>; abstract onNetworkChange(): Promise<void>; } export declare function scopePollingDetectionStrategy(detect: () => boolean): void; //# sourceMappingURL=BaseAdapter.d.ts.map