Core wallet interface for Bitcoin transactions with Ark protocol support.

This interface defines the contract that all wallet implementations must follow. It provides methods for address management, balance checking, virtual UTXO operations, and transaction management including sending, settling, and unrolling.

interface IWallet {
    getAddress(): Promise<string>;
    getBalance(): Promise<WalletBalance>;
    getBoardingAddress(): Promise<string>;
    getBoardingUtxos(): Promise<ExtendedCoin[]>;
    getTransactionHistory(): Promise<ArkTransaction[]>;
    getVtxos(filter?: GetVtxosFilter): Promise<ExtendedVirtualCoin[]>;
    sendBitcoin(params: SendBitcoinParams): Promise<string>;
    settle(
        params?: SettleParams,
        eventCallback?: (event: SettlementEvent) => void,
    ): Promise<string>;
}

Implemented by

Methods