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