@bitcoinerlab/discovery
Version:
A TypeScript library for retrieving Bitcoin funds from ranged descriptors, leveraging @bitcoinerlab/explorer for standardized access to multiple blockchain explorers.
53 lines (52 loc) • 2.94 kB
TypeScript
import memoizee from 'memoizee';
import { NetworkId, Descriptor, Account, DescriptorIndex, DiscoveryData, TxStatus, DescriptorData, TxAttribution, TxId, TxData, TxWithOrder, TxoMap } from './types';
import { Transaction, Network } from 'bitcoinjs-lib';
export declare function canonicalize(descriptorOrDescriptors: Array<Descriptor> | Descriptor, network: Network): string | string[];
export declare function deriveDataFactory({ descriptorsCacheSize, outputsPerDescriptorCacheSize }: {
descriptorsCacheSize: number;
outputsPerDescriptorCacheSize: number;
}): {
deriveScriptPubKey: (networkId: NetworkId, descriptor: Descriptor, index: DescriptorIndex) => Uint8Array<ArrayBufferLike>;
deriveUtxosAndBalanceByOutput: (networkId: NetworkId, txMap: Record<TxId, TxData>, descriptorMap: Record<Descriptor, DescriptorData>, descriptor: Descriptor, index: DescriptorIndex, txStatus: TxStatus) => {
txoMap: TxoMap;
stxos: string[];
utxos: string[];
balance: bigint;
};
deriveUtxosAndBalance: (networkId: NetworkId, txMap: Record<TxId, TxData>, descriptorMap: Record<Descriptor, DescriptorData>, descriptorOrDescriptors: Array<Descriptor> | Descriptor, txStatus: TxStatus) => {
stxos: string[];
utxos: string[];
txoMap: TxoMap;
balance: bigint;
};
deriveUsedDescriptors: (discoveryData: DiscoveryData, networkId: NetworkId) => string[];
deriveUsedAccounts: (discoveryData: DiscoveryData, networkId: NetworkId) => string[];
deriveAccountDescriptors: ((account: Account) => [Descriptor, Descriptor]) & memoizee.Memoized<(account: Account) => [Descriptor, Descriptor]>;
deriveHistoryByOutput: (withAttributions: boolean, networkId: NetworkId, txMap: Record<TxId, TxData>, descriptorMap: Record<Descriptor, DescriptorData>, descriptor: Descriptor, index: DescriptorIndex, txStatus: TxStatus) => TxData[] | {
ins: ({
ownedPrevTxo: string;
value: bigint;
} | {
ownedPrevTxo: string | false;
value?: never;
})[];
outs: {
ownedTxo: string | false;
value: bigint;
}[];
netReceived: bigint;
type: "CONSOLIDATED" | "RECEIVED" | "SENT" | "RECEIVED_AND_SENT";
txId: string;
irreversible: boolean;
blockHeight: number;
}[];
deriveHistory: (withAttributions: boolean, networkId: NetworkId, txMap: Record<TxId, TxData>, descriptorMap: Record<Descriptor, DescriptorData>, descriptorOrDescriptors: Array<Descriptor> | Descriptor, txStatus: TxStatus) => TxData[] | TxAttribution[];
transactionFromHex: ((txHex: string) => {
tx: Transaction;
txId: string;
}) & memoizee.Memoized<(txHex: string) => {
tx: Transaction;
txId: string;
}>;
compareTxOrder: <TA extends TxWithOrder, TB extends TxWithOrder>(txWithOrderA: TA, txWithOrderB: TB) => number;
};