扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍“如何使用web3.js获取以太坊交易确认数”,在日常操作中,相信很多人在如何使用web3.js获取以太坊交易确认数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用web3.js获取以太坊交易确认数”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联建站服务项目包括隆安网站建设、隆安网站制作、隆安网页制作以及隆安网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,隆安网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到隆安省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
要获取一个以太坊交易的确认数,需要使用两个RPC调用:
eth_getTransactionReceipt:获取交易收据
eth_blockNumber:获取最新区块号
首先利用eth_getTransactionReceipt调用获取指定的交易收据,例如,下面的命令获取交易0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238
的收据:
~$ curl -X POST --data '{ "jsonrpc":"2.0", "method":"eth_getTransactionReceipt", "params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"], "id":1}' http://localhost:8545
在结果中可以获取该交易所在区块编号:
{ "id":1, "jsonrpc":"2.0", "result": { ... blockNumber: '0xb', // 区块11 ... } }
然后就可以在随后的任意时刻使用eth_blockNumber调用来获取当前最新块信息,例如:
~$ curl -X POST --data '{ "jsonrpc":"2.0", "method":"eth_blockNumber", "params":[], "id":83}' http://localhost:8545
在结果中可以获取当前最新一个区块编号:
{ "id":83, "jsonrpc": "2.0", "result": "0xf" // 区块15 }
用区块链中最后一个区块的编号,减去交易所在区块编号,再加1,就可以得到一个以太坊交易的确认数了:
交易确认数 = 最新区块号 - 交易所在区块号 + 1 = 15 - 11 + 1 = 5
基于上面的原理,我们很容易编写web3.js代码来获取以太坊交易确认数:
async function getTxConfirms(txhash){ const receipt = await web3.eth.getTransactionReceipt(txhash) //later... const latest = await web3.eth.getBlockNumber() //confirms return latest - receipt.number + 1 }
调用上面实现的getTxConfirms()函数,就可以获取指定交易当前的确认数了:
getTxConfirms('0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b') .then(confirms => console.log(confirms))
到此,关于“如何使用web3.js获取以太坊交易确认数”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流