不一定,可以通过使用UTXO(未花费的交易输出)来选择要放入交易的特定金额。
示例代码:
// 获取UTXO let txid = 'xxx'; // 交易ID let outputIndex = 0; // 交易输出索引 let {utxos} = await client.getBalance(); let utxo = utxos.find(u => u.txid === txid && u.outputIndex === outputIndex);
// 构造交易 let transaction = new bitcoin.Transaction(); transaction.addInput(utxo.txid, utxo.outputIndex); transaction.addOutput('1BitcoinAddress...', 1000000); // 输出的比特币数量 transaction.addOutput('1AnotherBitcoinAddress...', 2000000); let change = utxo.value - (1000000 + 2000000); // 找零 transaction.addOutput(utxo.address, change);
// 签名并广播交易
transaction.sign(utxo.privateKey);
let {txid} = await client.sendTransaction(transaction);
console.log(Transaction ID: ${txid}
);