UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

60 lines (59 loc) 2.15 kB
import type { UTXOWalletProvider } from './types.js'; import { type Address } from '@bigmi/core'; import type { UTXOConnectorParameters } from './types.js'; export type DynamicWalletConnectorEventMap = { accountChange(props: { accounts: string[]; }): void; }; export type DynamicWalletConnectorEvents = { addListener<TEvent extends keyof DynamicWalletConnectorEventMap>(event: TEvent, listener: DynamicWalletConnectorEventMap[TEvent]): void; removeListener<TEvent extends keyof DynamicWalletConnectorEventMap>(event: TEvent, listener: DynamicWalletConnectorEventMap[TEvent]): void; }; export type DynamicWalletConnector = { providerId: string; name: string; id: string; getAddress(): string; _metadata: { icon?: string; }; } & DynamicWalletConnectorEvents; type BitcoinAddress = { address: string; type: 'ordinals' | 'payment'; publicKey: string; }; export type BitcoinSignPsbtRequestSignature = { address: string; signingIndexes: number[] | undefined; disableAddressValidation?: boolean; }; type BitcoinSignPsbtRequest = { allowedSighash: number[]; unsignedPsbtBase64: string; signature?: BitcoinSignPsbtRequestSignature[]; }; type BitcoinSignPsbtResponse = { signedPsbt: string; }; type DynamicBitcoinWallet = { connector: DynamicWalletConnector; additionalAddresses: BitcoinAddress[]; address: string; isAuthenticated: boolean; signPsbt(parameters: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>; }; type DynamicConnectorProperties = { getAccounts(): Promise<readonly Address[]>; onAccountsChanged(accounts: Address[]): void; getInternalProvider(): Promise<DynamicWalletConnector>; } & UTXOWalletProvider; type DynamicConnectorParameters = { wallet: DynamicBitcoinWallet; } & UTXOConnectorParameters; export declare function dynamic(parameters: DynamicConnectorParameters): import("../factories/createConnector.js").CreateConnectorFn<UTXOWalletProvider | undefined, DynamicConnectorProperties, Record<string, unknown>>; export declare namespace dynamic { var type: "UTXO"; } export {};