UNPKG

@xchainjs/xchain-bitcoin

Version:

Custom Bitcoin client and utilities used by XChainJS clients

74 lines (73 loc) 2.48 kB
/// <reference types="node" /> import { AssetInfo, FeeRate } from '@xchainjs/xchain-client'; import { Address } from '@xchainjs/xchain-util'; import { Client as UTXOClient, PreparedTx, TxParams, UTXO, UtxoClientParams } from '@xchainjs/xchain-utxo'; import * as Bitcoin from 'bitcoinjs-lib'; import { AddressFormat } from './types'; export declare const defaultBTCParams: UtxoClientParams; /** * Custom Bitcoin client */ declare abstract class Client extends UTXOClient { protected addressFormat: AddressFormat; /** * Constructor * Initializes the client with network type and other parameters. * @param {UtxoClientParams} params */ constructor(params?: UtxoClientParams & { addressFormat?: AddressFormat; }); /** * Get BTC asset info. * @returns {AssetInfo} BTC asset information. */ getAssetInfo(): AssetInfo; /** * Validate the given Bitcoin address. * @param {string} address Bitcoin address to validate. * @returns {boolean} `true` if the address is valid, `false` otherwise. */ validateAddress(address: string): boolean; /** * Compile memo into a buffer. * @param {string} memo Memo to compile. * @returns {Buffer} Compiled memo. */ protected compileMemo(memo: string): Buffer; /** * Get transaction fee from UTXOs. * @param {UTXO[]} inputs UTXOs to calculate fee from. * @param {FeeRate} feeRate Fee rate. * @param {Buffer | null} data Compiled memo (Optional). * @returns {number} Transaction fee. */ protected getFeeFromUtxos(inputs: UTXO[], feeRate: FeeRate, data?: Buffer | null): number; /** * Build a Bitcoin transaction.* * @param param0 * @deprecated */ buildTx({ amount, recipient, memo, feeRate, sender, spendPendingUTXO, }: TxParams & { feeRate: FeeRate; sender: Address; spendPendingUTXO?: boolean; withTxHex?: boolean; }): Promise<{ psbt: Bitcoin.Psbt; utxos: UTXO[]; inputs: UTXO[]; }>; /** * Prepare transfer. * * @param {TxParams&Address&FeeRate&boolean} params The transfer options. * @returns {PreparedTx} The raw unsigned transaction. */ prepareTx({ sender, memo, amount, recipient, spendPendingUTXO, feeRate, }: TxParams & { sender: Address; feeRate: FeeRate; spendPendingUTXO?: boolean; }): Promise<PreparedTx>; } export { Client };