@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
42 lines (41 loc) • 1.49 kB
TypeScript
import type { Account, Address } from '@bigmi/core';
import type { UTXOConnectorParameters, UTXOWalletProvider } from './types.js';
export type LeatherBitcoinEventMap = {
accountChange(accounts: Account[]): void;
};
export type LeatherBitcoinEvents = {
addListener<TEvent extends keyof LeatherBitcoinEventMap>(event: TEvent, listener: LeatherBitcoinEventMap[TEvent]): void;
removeListener?<TEvent extends keyof LeatherBitcoinEventMap>(event: TEvent, listener: LeatherBitcoinEventMap[TEvent]): void;
};
type LeatherConnectorProperties = {
getAccounts(): Promise<readonly (Account | Address)[]>;
getInternalProvider(): Promise<LeatherBitcoinProvider>;
} & UTXOWalletProvider;
type Error = {
code: number;
message: string;
};
interface GetAccountsResponse {
result?: {
addresses: Account[];
};
error?: Error;
}
type LeatherBitcoinProvider = {
request(method: 'signPsbt', options: {
hex: string;
allowedSignHash: number;
signAtIndex?: number | number[];
broadcast: boolean;
}): Promise<{
result: {
hex: string;
};
}>;
request(method: 'getAddresses'): Promise<GetAccountsResponse>;
} & LeatherBitcoinEvents;
export declare function leather(parameters?: UTXOConnectorParameters): import("../index.js").CreateConnectorFn<UTXOWalletProvider | undefined, LeatherConnectorProperties, Record<string, unknown>>;
export declare namespace leather {
var type: "UTXO";
}
export {};