UNPKG

@nawab_kibria/bitcoin-lib

Version:

A comprehensive Bitcoin HD wallet library with BIP84, BIP44, BIP49 support, mnemonic generation and restoration

56 lines (55 loc) 1.91 kB
import * as bitcoin from 'bitcoinjs-lib'; import { TransactionInput, TransactionOutput, TransactionOptions, PreparedTransaction, AddressType, ElectrumUTXO, PSBTOptions } from '../types/wallet'; export declare class TransactionBuilder { private network; constructor(network?: bitcoin.Network); /** * Create a Bitcoin transaction from inputs and outputs */ createTransaction(inputs: TransactionInput[], outputs: TransactionOutput[], options?: TransactionOptions): Promise<PreparedTransaction>; /** * Add input to PSBT based on address type */ private addInputToPsbt; /** * Get script for address based on type */ private getScriptForAddress; /** * Estimate transaction size in virtual bytes */ estimateTransactionSize(inputs: TransactionInput[], outputs: TransactionOutput[], hasChange?: boolean): number; /** * Convert UTXOs to transaction inputs */ convertUTXOsToInputs(utxos: ElectrumUTXO[], addressDetails: Map<string, { address: string; privateKey: string; publicKey: string; addressType: AddressType; }>): TransactionInput[]; /** * Select UTXOs for a transaction using a simple selection algorithm */ selectUTXOs(utxos: ElectrumUTXO[], targetAmount: number, feeRate?: number): { selectedUTXOs: ElectrumUTXO[]; totalValue: number; estimatedFee: number; }; /** * Create a PSBT (Partially Signed Bitcoin Transaction) */ createPSBT(options: PSBTOptions): bitcoin.Psbt; /** * Validate transaction before broadcasting */ validateTransaction(tx: PreparedTransaction): boolean; /** * Get network-specific dust limit */ getDustLimit(): number; /** * Calculate transaction priority score */ calculatePriority(inputs: TransactionInput[], feeRate: number): number; }