UNPKG

@arklabs/wallet-sdk

Version:

Bitcoin wallet SDK with Taproot and Ark integration

39 lines (38 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildForfeitTx = buildForfeitTx; const btc_signer_1 = require("@scure/btc-signer"); function buildForfeitTx({ connectorInput, vtxoInput, vtxoAmount, connectorAmount, feeAmount, vtxoPkScript, connectorPkScript, serverPkScript, txLocktime, }) { const tx = new btc_signer_1.Transaction({ version: 2, lockTime: txLocktime, }); // Add connector input tx.addInput({ txid: connectorInput.txid, index: connectorInput.vout, witnessUtxo: { script: connectorPkScript, amount: connectorAmount, }, sequence: 0xffffffff, }); // Add VTXO input tx.addInput({ txid: vtxoInput.txid, index: vtxoInput.vout, witnessUtxo: { script: vtxoPkScript, amount: vtxoAmount, }, sequence: txLocktime ? 0xfffffffe : 0xffffffff, // MAX_SEQUENCE - 1 if locktime is set sighashType: btc_signer_1.SigHash.DEFAULT, }); const amount = BigInt(vtxoAmount) + BigInt(connectorAmount) - BigInt(feeAmount); // Add main output to server tx.addOutput({ script: serverPkScript, amount, }); return tx; }