UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

49 lines (48 loc) 1.93 kB
import type { Address } from '@bigmi/core'; import type { BtcAccount } from '../types/account.js'; import type { UTXOConnectorParameters, UTXOWalletProvider } from './types.js'; export type XverseBitcoinEventMap = { accountChange(accounts: BtcAccount[]): void; }; export type XverseBitcoinEvents = { addListener<TEvent extends keyof XverseBitcoinEventMap>(event: TEvent, listener: XverseBitcoinEventMap[TEvent]): void; removeListener?<TEvent extends keyof XverseBitcoinEventMap>(event: TEvent, listener: XverseBitcoinEventMap[TEvent]): void; }; type XverseConnectorProperties = { getAccounts(): Promise<readonly (BtcAccount | Address)[]>; onAccountsChanged(accounts: (BtcAccount | Address)[]): void; getInternalProvider(): Promise<XverseBitcoinProvider>; } & UTXOWalletProvider; type Purpose = 'ordinals' | 'payment' | 'stacks'; type Error = { code: number; message: string; }; interface GetAccountsRequest { purposes: Purpose[]; } interface GetAccountsResponse { result?: { addresses: BtcAccount[]; }; error?: Error; } interface RequestPermissionsResponse { result?: boolean; error?: Error; } type XverseBitcoinProvider = { request(method: 'signPsbt', options: { psbt: string; allowedSignHash: number; signInputs: Record<string, number[]>; broadcast: boolean; }): Promise<string>; request(method: 'getAccounts' | 'getAddresses', options: GetAccountsRequest): Promise<GetAccountsResponse>; request(method: 'wallet_requestPermissions' | 'wallet_renouncePermissions'): Promise<RequestPermissionsResponse>; } & XverseBitcoinEvents; export declare function xverse(parameters?: UTXOConnectorParameters): import("../factories/createConnector.js").CreateConnectorFn<UTXOWalletProvider | undefined, XverseConnectorProperties, Record<string, unknown>>; export declare namespace xverse { var type: "UTXO"; } export {};