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