@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
54 lines (53 loc) • 1.98 kB
TypeScript
import { CreateConnectorFn } from "../types/connector.js";
import { UTXOConnectorParameters, UTXOWalletProvider } from "./types.js";
import { Account } from "@bigmi/core";
//#region src/connectors/unhosted.d.ts
type UnhostedBitcoinNetwork = "Mainnet" | "Testnet" | "Testnet4" | "Signet";
interface WalletAccount {
address: string;
publicKey: string;
}
interface Network$1 {
name: UnhostedBitcoinNetwork;
}
type UnhostedBitcoinEvents = {
on(event: "bitcoin:accountsChanged", listener: (accounts: WalletAccount[]) => void): void;
on(event: "bitcoin:networkChanged", listener: (network: Network$1) => void): void;
on(event: "bitcoin:disconnect", listener: () => void): void;
off?(event: "bitcoin:accountsChanged", listener: (accounts: WalletAccount[]) => void): void;
off?(event: "bitcoin:networkChanged", listener: (network: Network$1) => void): void;
off?(event: "bitcoin:disconnect", listener: () => void): void;
};
type UnhostedConnectorProperties = {
getAccounts(): Promise<readonly Account[]>;
getInternalProvider(): Promise<UnhostedBitcoinProvider | undefined>;
} & UTXOWalletProvider;
interface SignPsbtParams {
signInputs?: Record<string, number[]>;
broadcast?: boolean;
}
interface SignPsbtResponse {
psbt: string;
txid?: string;
}
type Response<T> = Promise<{
result: T;
}>;
type UnhostedBitcoinProvider = UnhostedBitcoinEvents & {
wallet_connect(): Promise<{
addresses: WalletAccount[];
}>;
wallet_getNetwork(): Response<{
bitcoin: Network$1;
}>;
getAccounts(): Response<WalletAccount[]>;
signPsbt(psbtBase64: string, params?: SignPsbtParams): Response<SignPsbtResponse>;
isUnhosted?: boolean;
};
declare function unhosted(parameters?: UTXOConnectorParameters): CreateConnectorFn<UTXOWalletProvider | undefined, UnhostedConnectorProperties>;
declare namespace unhosted {
export var type: "UTXO";
}
//#endregion
export { UnhostedBitcoinEvents, UnhostedBitcoinNetwork, unhosted };
//# sourceMappingURL=unhosted.d.ts.map