UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

76 lines (75 loc) 2.55 kB
import { CreateConnectorFn } from "../types/connector.js"; import { UTXOConnectorParameters, UTXOWalletProvider } from "./types.js"; import { Account, AddressPurpose } from "@bigmi/core"; //#region src/connectors/xverse.d.ts type XverseBitcoinNetwork = "Mainnet" | "Testnet" | "Testnet4" | "Signet"; type XverseStacksNetwork = "Mainnet" | "Testnet"; type XverseNetworkChangeEventParams = { type: "network_change"; bitcoin: { name: XverseBitcoinNetwork; }; stacks: { name: XverseStacksNetwork; }; addresses: Account[]; }; type XverseBitcoinEventMap = { accountChange(accounts: Account[]): void; networkChange(event: XverseNetworkChangeEventParams): void; }; 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; } interface GetNetworkResponse { result?: { bitcoin: { name: XverseBitcoinNetwork; }; stacks: { name: XverseStacksNetwork; }; }; 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>; request(method: "wallet_getNetwork"): Promise<GetNetworkResponse>; } & XverseBitcoinEvents; declare function xverse(parameters?: UTXOConnectorParameters): CreateConnectorFn<UTXOWalletProvider | undefined, XverseConnectorProperties>; declare namespace xverse { export var type: "UTXO"; } //#endregion export { XverseBitcoinEventMap, XverseBitcoinEvents, XverseBitcoinNetwork, XverseNetworkChangeEventParams, XverseStacksNetwork, xverse }; //# sourceMappingURL=xverse.d.ts.map