UNPKG

@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
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; };