import * as bT from '../bitcoin'; import Utxo from './Utxo'; /** * Input supplementation modes for DLC operations */ export declare enum InputSupplementationMode { None = "none",// Use exactly these inputs, no supplementation Optional = "optional",// Try to supplement, fallback if fails Required = "required" } /** * DLC-specific input information for splice transactions */ export interface DlcInputInfo { localFundPubkey: string; remoteFundPubkey: string; contractId: string; } /** * Class for interfacing with inputs/utxos in Liquality Chainify * https://github.com/liquality/chainify * * These inputs can have different fields for value * satoshis (sats): https://github.com/liquality/chainify/blob/dev/packages/bitcoin-esplora-api-provider/lib/BitcoinEsploraApiProvider.js#L65 * amount (btc): https://github.com/liquality/chainify/blob/dev/packages/bitcoin-esplora-api-provider/lib/BitcoinEsploraApiProvider.js#L74 * value (sats): https://github.com/liquality/chainify/blob/dev/packages/bitcoin-wallet-provider/lib/BitcoinWalletProvider.js#L331 * * This will be fixed once typescript branch is merged: * https://github.com/liquality/chainify/tree/typescript * satoshis and amount will not be necessary, only value * https://github.com/liquality/chainify/blob/typescript/packages/types/lib/bitcoin.ts#L46 * * Extended to support DLC inputs for splice transactions. */ export default class Input { readonly txid: string; readonly vout: number; readonly address: string; readonly amount: number; readonly value: number; readonly derivationPath?: string; readonly maxWitnessLength?: number; readonly redeemScript?: string; readonly inputSerialId?: bigint; readonly scriptPubKey?: string; readonly label?: string; readonly confirmations?: number; readonly spendable?: boolean; readonly solvable?: boolean; readonly safe?: boolean; readonly dlcInput?: DlcInputInfo; constructor(txid: string, vout: number, address: string, amount: number, // in BTC value: number, // in sats derivationPath?: string, maxWitnessLength?: number, redeemScript?: string, inputSerialId?: bigint, scriptPubKey?: string, label?: string, confirmations?: number, spendable?: boolean, solvable?: boolean, safe?: boolean, dlcInput?: DlcInputInfo); toUtxo(): Utxo; /** * Check if this input contains DLC information (for splice transactions) */ isDlcInput(): boolean; static fromUTXO(utxo: bT.UTXO): Input; /** * Create a DLC input for splice transactions */ static createDlcInput(txid: string, vout: number, multisigAddress: string, amount: number, // in BTC value: number, // in sats localFundPubkey: string, remoteFundPubkey: string, contractId: string, inputSerialId?: bigint): Input; }