@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
63 lines (62 loc) • 2.22 kB
TypeScript
import { CreateConnectorFn } from "../types/connector.js";
import { UTXOConnectorParameters, UTXOWalletProvider } from "./types.js";
import { Account, Address } from "@bigmi/core";
//#region src/connectors/dynamic.d.ts
type DynamicWalletConnectorEventMap = {
accountChange(props: {
accounts: string[];
}): void;
};
type DynamicWalletConnectorEvents = {
addListener<TEvent extends keyof DynamicWalletConnectorEventMap>(event: TEvent, listener: DynamicWalletConnectorEventMap[TEvent]): void;
removeListener<TEvent extends keyof DynamicWalletConnectorEventMap>(event: TEvent, listener: DynamicWalletConnectorEventMap[TEvent]): void;
};
type DynamicWalletConnector = {
providerId: string;
name: string;
id: string;
getAddress(): string;
_metadata: {
icon?: string;
};
} & DynamicWalletConnectorEvents;
type BitcoinAddress = {
address: string;
type: "ordinals" | "payment";
publicKey: string;
};
type BitcoinSignPsbtRequestSignature = {
address: string;
signingIndexes: number[] | undefined;
disableAddressValidation?: boolean;
};
type BitcoinSignPsbtRequest = {
allowedSighash: number[];
unsignedPsbtBase64: string;
signature?: BitcoinSignPsbtRequestSignature[];
};
type BitcoinSignPsbtResponse = {
signedPsbt: string;
};
type DynamicBitcoinWallet = {
connector: DynamicWalletConnector;
additionalAddresses: BitcoinAddress[];
address: string;
isAuthenticated: boolean;
signPsbt(parameters: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
};
type DynamicConnectorProperties = {
getAccounts(): Promise<readonly Account[]>;
onAccountsChanged(accounts: Address[]): void;
getInternalProvider(): Promise<DynamicWalletConnector>;
} & UTXOWalletProvider;
type DynamicConnectorParameters = {
wallet: DynamicBitcoinWallet;
} & UTXOConnectorParameters;
declare function dynamic(parameters: DynamicConnectorParameters): CreateConnectorFn<UTXOWalletProvider | undefined, DynamicConnectorProperties>;
declare namespace dynamic {
export var type: "UTXO";
}
//#endregion
export { BitcoinSignPsbtRequestSignature, DynamicWalletConnector, DynamicWalletConnectorEventMap, DynamicWalletConnectorEvents, dynamic };
//# sourceMappingURL=dynamic.d.ts.map