@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
76 lines (75 loc) • 2.55 kB
TypeScript
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