@m3s/wallet
Version:
A flexible wallet interface supporting multiple blockchain wallet types, including EVM wallets and Web3Auth integration
68 lines • 2.97 kB
TypeScript
import { ethers, Provider, TransactionReceipt } from 'ethers';
import { AdapterArguments, NetworkConfig } from '@m3s/shared';
import { IEVMWallet, WalletEvent, GenericTransactionData, AssetBalance, EIP712TypedData, EstimatedFeeData } from '../../../types/index.js';
/**
* Configuration specific to the EvmWalletAdapter (Ethers).
*/
export interface IEthersWalletOptionsV1 {
privateKey?: string;
provider?: NetworkConfig;
multiChainRpcs?: Record<string, string[]>;
}
interface args extends AdapterArguments<IEthersWalletOptionsV1> {
}
/**
* An adapter for EVM-based wallets using a private key, powered by ethers.js.
* It implements the IEVMWallet interface directly, without a base class.
*/
export declare class EvmWalletAdapter implements IEVMWallet {
readonly name: string;
readonly version: string;
private wallet;
private provider?;
private config;
private _connected;
protected initialized: boolean;
protected decimals: number;
protected eventListeners: Map<string, Set<(payload: any) => void>>;
private multiChainRpcs;
private network?;
private constructor();
/**
* Factory method to create and initialize an instance of EvmWalletAdapter.
*/
static create(args: args): Promise<EvmWalletAdapter>;
initialize(): Promise<void>;
disconnect(): Promise<void>;
isConnected(): boolean;
isInitialized(): boolean;
/**
* Get ALL configured RPC URLs for ALL chains
*/
getAllChainRpcs(): Record<string, string[]>;
/**
* Update ALL RPC configurations at once
*/
updateAllChainRpcs(multiChainRpcs: Record<string, string[]>): Promise<void>;
setProvider(config: NetworkConfig): Promise<void>;
on(event: WalletEvent | string, callback: (...args: any[]) => void): void;
off(event: WalletEvent | string, callback: (...args: any[]) => void): void;
protected emitEvent(eventName: WalletEvent | string, payload: any): void;
getAccounts(): Promise<string[]>;
getNetwork(): Promise<NetworkConfig>;
getBalance(account?: string): Promise<AssetBalance>;
signMessage(message: string | Uint8Array): Promise<string>;
signTransaction(tx: GenericTransactionData): Promise<string>;
signTypedData(data: EIP712TypedData): Promise<string>;
verifySignature(message: string | Uint8Array | EIP712TypedData, signature: string, address: string): Promise<boolean>;
sendTransaction(tx: GenericTransactionData): Promise<string>;
getTransactionReceipt(txHash: string): Promise<TransactionReceipt | null>;
callContract(to: string, data: string): Promise<string>;
estimateGas(tx: GenericTransactionData): Promise<EstimatedFeeData>;
getGasPrice(): Promise<bigint>;
protected getProvider(): Promise<Provider>;
protected getSigner(): Promise<ethers.Signer>;
prepareTransactionRequest(tx: GenericTransactionData): Promise<ethers.TransactionRequest>;
}
export {};
//# sourceMappingURL=ethersWallet.d.ts.map