UNPKG

@bigmi/client

Version:

Reactive primitives for Bitcoin apps.

60 lines (59 loc) 2.14 kB
import { CreateConnectorFn } from "../types/connector.js"; import { UTXOConnectorParameters, UTXOWalletProvider } from "./types.js"; import { Account } from "@bigmi/core"; import { Wallet, WalletAccount } from "@wallet-standard/base"; //#region src/connectors/metamask.d.ts type BitcoinAddressPurpose = "ordinals" | "payment"; /** MetaMask's string SIGHASH flags (Bigmi uses numeric). */ type BitcoinSigHashFlag = "ALL" | "NONE" | "SINGLE" | "ALL|ANYONECANPAY" | "NONE|ANYONECANPAY" | "SINGLE|ANYONECANPAY"; /** MetaMask Bitcoin Wallet Standard features, registered by the app via `@metamask/bitcoin-wallet-standard`. */ type MetaMaskBitcoinFeatures = { "bitcoin:connect": { connect(input: { purposes: BitcoinAddressPurpose[]; }): Promise<{ accounts: readonly WalletAccount[]; }>; }; "bitcoin:signTransaction": { signTransaction(...inputs: { psbt: Uint8Array; inputsToSign: { account: WalletAccount; signingIndexes: number[]; sigHash?: BitcoinSigHashFlag; }[]; chain?: string; }[]): Promise<readonly { signedPsbt: Uint8Array; }[]>; }; "bitcoin:events": { on(event: "change", listener: (properties: { accounts?: readonly WalletAccount[]; }) => void): () => void; }; }; type MetaMaskBitcoinWallet = Wallet & { features: MetaMaskBitcoinFeatures; }; type MetaMaskBitcoinEventMap = { change(properties: { accounts?: readonly WalletAccount[]; }): void; }; type MetaMaskBitcoinEvents = { on(event: "change", listener: MetaMaskBitcoinEventMap["change"]): () => void; }; type MetaMaskConnectorProperties = { getAccounts(): Promise<readonly Account[]>; onAccountsChanged(accounts: Account[]): void; getInternalProvider(): Promise<MetaMaskBitcoinWallet | undefined>; } & UTXOWalletProvider; declare function metamask(parameters?: UTXOConnectorParameters): CreateConnectorFn<UTXOWalletProvider | undefined, MetaMaskConnectorProperties>; declare namespace metamask { export var type: "UTXO"; } //#endregion export { MetaMaskBitcoinEventMap, MetaMaskBitcoinEvents, metamask }; //# sourceMappingURL=metamask.d.ts.map