bitcoinjs-lib怎么实现多笔交易合并
本篇内容主要讲解“bitcoinjs-lib怎么实现多笔交易合并”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“bitcoinjs-lib怎么实现多笔交易合并”吧!

创新互联公司2013年成立,先为庆阳等服务建站,庆阳等地企业,进行企业商务咨询服务。为庆阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
转账的时候需要手动寻找每一笔未花费记录实在太费时。
比特币转账需要提取或合并所有未花费的交易中的比特币,才能实现交易。
import * as bitcoin from 'bitcoinjs-lib';
import fetch, { Response } from 'node-fetch';
const quantitySat = 0.0001 * 1e8;
const feeSat = 0.0001 * 1e8;
(async () => {
try {
let NETWORK = bitcoin.networks.testnet;
const keyPair = bitcoin.ECPair.fromWIF(from_pvtkey, NETWORK);
const p2pkh = bitcoin.payments.p2pkh({ pubkey: keyPair.publicKey, network: NETWORK });
let from = p2pkh.address;
const utxoResponse: Response = await fetch(`https://api.blockcypher.com/v1/btc/test3/addrs/${from}`);
const json = await utxoResponse.json();
console.log(json);
let balance = json.balance;
let unspentList: Array = [];
// 过滤掉已经被花费了的交易和未确认的交易,以及自己不在接收列表的交易
const txrefs = json.txrefs;
const unconfirmed_txrefs = json.unconfirmed_txrefs;
if (unconfirmed_txrefs && unconfirmed_txrefs.length > 0) {
// 要把未确认的余额给去掉
balance += json.unconfirmed_balance;
unspentList = unspentList.concat(unconfirmed_txrefs.filter((item: any) => !item.spent_by && item.tx_output_n !== -1));
}
if (txrefs.length > 0) {
unspentList = unspentList.concat(txrefs.filter((item: any) => !item.spent_by && item.tx_output_n !== -1));
}
// 构建交易对象
let txb = new bitcoin.TransactionBuilder(NETWORK);
// 批量插入未花费交易
unspentList.forEach((item: any) => txb.addInput(item.tx_hash, item.tx_output_n));
// 转出账户
txb.addOutput(to, quantitySat);
// 预留手续费
txb.addOutput(from, balance - quantitySat - feeSat);
// 批量签名,根据索引即可
unspentList.forEach((item: any, index: any) => { txb.sign(index, keyPair) });
// 序列化交易
let tx = txb.build();
console.log(tx.getHash().toString('hex'));
// 在一个测试链的节点把交易广布出去
const result = await fetch('https://api.blockcypher.com/v1/btc/test3/txs/push',{
method:'post',
headers:{'Content-Type':'application/json'},
body:JSON.stringify({tx: tx.toHex()})
});
} catch (error) {
console.error(error);
}
})(); 到此,相信大家对“bitcoinjs-lib怎么实现多笔交易合并”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网站标题:bitcoinjs-lib怎么实现多笔交易合并
浏览地址:http://www.jxjierui.cn/article/jiojph.html


咨询
建站咨询
