UNPKG

@bitcoinerlab/discovery

Version:

A TypeScript library for retrieving Bitcoin funds from ranged descriptors, leveraging @bitcoinerlab/explorer for standardized access to multiple blockchain explorers.

54 lines (53 loc) 2.95 kB
/// <reference types="node" /> 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) => Buffer; deriveUtxosAndBalanceByOutput: (networkId: NetworkId, txMap: Record<TxId, TxData>, descriptorMap: Record<Descriptor, DescriptorData>, descriptor: Descriptor, index: DescriptorIndex, txStatus: TxStatus) => { txoMap: TxoMap; stxos: string[]; utxos: string[]; balance: number; }; deriveUtxosAndBalance: (networkId: NetworkId, txMap: Record<TxId, TxData>, descriptorMap: Record<Descriptor, DescriptorData>, descriptorOrDescriptors: Array<Descriptor> | Descriptor, txStatus: TxStatus) => { stxos: string[]; utxos: string[]; txoMap: TxoMap; balance: number; }; 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: number; } | { ownedPrevTxo: string | false; value?: never; })[]; outs: { ownedTxo: string | false; value: number; }[]; netReceived: number; 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; };