@roochnetwork/rooch-sdk-kit
Version:
Rooch SDK Kit
87 lines (86 loc) • 3.37 kB
TypeScript
import { ThirdPartyAddress, Bytes, Signer } from '@roochnetwork/rooch-sdk';
import { SupportChain } from '../feature/index.js';
import { WalletNetworkType } from './types.js';
export declare abstract class Wallet extends Signer {
protected address: ThirdPartyAddress[] | undefined;
protected publicKey: string | undefined;
protected currentAddress: ThirdPartyAddress | undefined;
/**
* Connects the wallet.
* @returns A promise that resolves to an array of wallet accounts.
*/
abstract connect(): Promise<ThirdPartyAddress[]>;
abstract getName(): string;
abstract getIcon(theme?: 'dark' | 'light'): string;
abstract getInstallUrl(): string;
abstract getDescription(): string;
abstract sendBtc(input: {
toAddress: string;
satoshis: number;
options?: {
feeRate: number;
};
}): Promise<string>;
abstract getBalance(): Promise<{
confirmed: number;
unconfirmed: number;
total: string;
}>;
/**
* Signs a message.
* @param msg - The message to sign.
* @returns A promise that resolves to the signature string.
*/
abstract sign(msg: Bytes): Promise<Bytes>;
/**
* Switches the network.
*/
abstract switchNetwork(network: WalletNetworkType): Promise<void>;
/**
* Retrieves the current network of the wallet.
* @returns The current network as a string.
*/
abstract getNetwork(): Promise<WalletNetworkType>;
/**
* Retrieves the supported networks of the wallet.
* @returns An array of supported network strings.
*/
abstract getSupportNetworks(): WalletNetworkType[];
/**
* Registers a callback function to be invoked when accounts are changed.
* @param callback - A function to be called when accounts are changed. It receives an array of account strings as its argument.
*/
abstract onAccountsChanged(callback: (accounts: Array<string>) => void): void;
/**
* Removes a previously registered callback function for account changes.
* @param callback - The callback function to be removed.
*/
abstract removeAccountsChanged(callback: (accounts: Array<string>) => void): void;
/**
* Registers a callback function to be invoked when the network is changed.
* @param callback - A function to be called when the network is changed. It receives the new network as its argument.
*/
abstract onNetworkChanged(callback: (network: string) => void): void;
/**
* Removes a previously registered callback function for network changes.
* @param callback - The callback function to be removed.
*/
abstract removeNetworkChanged(callback: (network: string) => void): void;
/**
* Retrieves the target of the wallet.
* @returns The target of the wallet.
*/
abstract getTarget(): any;
abstract getChain(): SupportChain;
/**
* Normalizes the recovery ID.
* @param recoveryID - The recovery ID to be normalized.
* @returns The normalized recovery ID as a number.
*/
protected abstract normalize_recovery_id(recoveryID: number): number;
/**
* Checks if the wallet is installed.
* @returns A promise that resolves to true if the wallet is installed, otherwise false.
*/
checkInstalled(): Promise<boolean>;
}