@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
47 lines (46 loc) • 1.79 kB
TypeScript
import type { Account, AddressPurpose } from '@bigmi/core';
import type { UTXOConnectorParameters, UTXOWalletProvider } from './types.js';
export type XverseBitcoinEventMap = {
accountChange(accounts: Account[]): 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 Account[]>;
onAccountsChanged(accounts: Account[]): void;
getInternalProvider(): Promise<XverseBitcoinProvider>;
} & UTXOWalletProvider;
type Error = {
code: number;
message: string;
};
interface GetAccountsRequest {
purposes: AddressPurpose[];
}
interface GetAccountsResponse {
result?: {
addresses: Account[];
};
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("../index.js").CreateConnectorFn<UTXOWalletProvider | undefined, XverseConnectorProperties, Record<string, unknown>>;
export declare namespace xverse {
var type: "UTXO";
}
export {};