编程: NodeJs/Javascript 函数检查Tron/波场区块链上的交易是否已确认(TronGrid API)
2025年1月6日 06:03
我们想知道给定的交易是否已经在 Tron/波场 区块链上确认,这可以通过 TronGrid API 轻松实现。
为了确保交易在Tron/波场区块链上被确认,验证逻辑应关注交易的状态,这表明交易是否已被 Tron 虚拟机(TVM)成功处理。以下是正确的验证方法:
检查 receipt.result
验证交易成功的主要标志是 receipt.result 字段。值为 “SUCCESS” 表明交易已成功处理且无任何错误。
确认区块号
交易仅在被包含进一个区块后才算确认。确保 transactionInfo.blockNumber 已定义且与预期的区块一致。
考虑额外的指标
某些交易可能不会生成 net_usage,但可能会产生 net_fee。检查诸如 net_fee 或 net_usage 的任何资源使用情况,可以让验证逻辑更加全面和完全可靠。
避免过早确认
确保交易不再是挂起状态,并已成功广播到网络中。
验证逻辑
以下是处理各种边界情况的逻辑:
const isConfirmed = transactionInfo => transactionInfo.blockNumber !== undefined && // 确保交易已包含在区块中 transactionInfo.receipt && // Receipt is present ( transactionInfo.receipt.result === 'SUCCESS' || // 明确的成功结果 transactionInfo.receipt.net_usage > 0 || // 使用了资源 transactionInfo.receipt.net_fee > 0 // 产生了费用 );
代码解释:
- transactionInfo.blockNumber:确保交易已成为区块链的一部分。
- transactionInfo.receipt.result:确认交易执行的状态。
- transactionInfo.receipt.net_usage / transactionInfo.receipt.net_fee:验证资源的使用情况,确保交易对链上状态有实际影响。
最佳实践:
- 监控交易事件:使用 TronGrid 的事件订阅功能,实时跟踪交易的确认状态。
- 增加确认等待:等待多个区块确认,以减少链重组导致交易无效的风险。
- 记录并处理错误:如果交易失败,请检查 contractResult 和 logs 中的错误详情。
这种方法可确保 Tron 系统中的交易确认过程稳健可靠。
完整的 JavaScript函数代码用于验证波场区块链上的交易
以下是一个基于 Node.js(JavaScript)的函数,它可以通过 TronGrid API 确认或验证 Tron 区块链上的交易。此函数需要使用 axios 库来执行 HTTPS API 调用。
const axios = require('axios'); async function isTransactionConfirmed(transactionID, appKey) { try { const response = await axios.post( 'https://api.trongrid.io/walletsolidity/gettransactioninfobyid', { value: transactionID }, { headers: { 'accept': 'application/json', 'content-type': 'application/json', 'TRON-PRO-API-KEY': appKey } } ); const transactionInfo = response.data; const isSuccess = (transactionInfo.receipt && transactionInfo.receipt.result === 'SUCCESS') || ((transactionInfo.blockNumber !== undefined) && (transactionInfo.receipt.net_usage > 0 || (transactionInfo.receipt.net_fee > 0))); const blockNumber = transactionInfo.blockNumber; console.log(`BlockNumber ${blockNumber}, ${JSON.stringify(transactionInfo)} Transaction ID: ${transactionID} - Status: ${isSuccess ? 'Confirmed' : 'Failed'}`); if (!isSuccess) { console.log(JSON.stringify(transactionInfo)); } return { "ok": isSuccess, "block": blockNumber }; } catch (error) { console.error('Error verifying transaction:', error); throw error; } }
区块链技术
- 编程: NodeJs/Javascript 函数检查Tron/波场区块链上的交易是否已确认(TronGrid API)
- 波场TRX和火币HTX可能是下一个百倍币
- 诈骗者正在利用多重签名钱包(Tron/波场): 保持警惕!
- 简介: 区块链DeFi交易中的无常损失/Impermanent Loss
- 基于P站(Poloniex)的广度优先搜索算法来获得任意两种币的兑换价格
- 加密货币只是区块链的冰山一角
- 警惕区块链上的小额诈骗转帐
- 区块链: 硬分叉与软分叉
- 区块链中Layer 1和Layer 2协议的简介
- 孙老板/师卖在区块链上卖沙子 (营销/沙币/孙哥/ICO)
- 和媳妇聊聊 区块链 (Web3.0, 还有共识算法 PoW, PoS, DPoS)
- 我玩区块链虚拟货币的原则
- SteemIt 就可以把图片也存在区块链上了
- Steem转波场U的信任问题(Steem/SBD to USDT TRC-20)
扫描二维码,分享本文到微信朋友圈
The post 编程: NodeJs/Javascript 函数检查Tron/波场区块链上的交易是否已确认(TronGrid API) first appeared on 小赖子的英国生活和资讯.相关文章:
- 给孩子零花钱培养孩子正确的金钱观价值观 两个娃已经不知不觉7岁8岁了. 媳妇和我商量一下决定给孩子每人每周5英镑的零花钱(Pocket Money). 这样他们慢慢的就有自己的小积蓄备将来不时之需: 比如朋友聚会生日啥的需要准备礼物. 同时, 我们决定不再给孩子买零食(薯片啥的). 孩子一天好几餐, 晚上睡觉前还得吃零食, 我们就多买了很多水果面包, 健康的食物多吃一些总不是啥坏事. 孩子可以用这些零钱买自己想要的东西, 我们也不再过问. 孩子有自己的决定权. 第一周的时候,...
- 剑桥网红餐厅 The Ivy Cambridge Brasserie 上周刚过40岁生日,媳妇带我去剑桥的一家网红餐厅——The Ivy Cambridge Brasserie。这家餐厅是朋友推荐的,和那家Trinity一样很有名,可惜我们在剑桥待了近10年才知道。 The Ivy Cambridge Brasserie 是剑桥市中心一家备受欢迎的网红餐厅,位于历史悠久的 Trinity Street。餐厅设计时尚典雅,融合了现代与经典元素,为食客提供了一个舒适而奢华的用餐环境。这里的菜单丰富多样,覆盖全天用餐,从早餐到晚餐以及下午茶,提供英式经典美食如松露鸡肉派、英式早餐等,也有一些国际风味的菜肴。得天独厚的位置和独特的氛围使得 The Ivy Cambridge Brasserie...
- 负电价活久见: 安装Octopus智能电表省电费甚至赚钱 前几周我的电气公司 Octopus 终于来装智能电表了(Smart Meter),虽然是免费安装的,但是排队排了有两三年了吧。因为之前一直写邮件催的时候就老是说 Not Ready。 收到邮件说可以安装智能电表我还是相当开心和期待的,因为已经听说这玩意好,但是还是得亲身体验一下。工程师来安装大概不到2小时,其中需要停电闸一会儿,重新接下线。装好后,给了个小册子,自动切换到了 Agile 的电价,也就是每半小时的电价都不一样,提前一天可以在手机App和网站上查得。 正好在原来的电价计费合同快要结束前2天换到了智能电表计价 Octopus Agile方式,但是系统还是扣了我75英镑 Exit Fee (提前合同结束得交违约费),不过我一个电话打过去,公司很爽快就给我退了。...
- 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
- HPZ800服务器主板太老不支持超过2TB的大硬盘 我家里一直用的是HPZ800服务器, 很吵, 很老, 虽然这台服务器已经有十年之久(我在EBAY上买来用了五年多了), 但是即使放到今天, 这服务器速度依旧很快, 很稳定. 由于服务器用的是ECC较验内存, 所以基本上不重启关机. HPZ800主机有两个硬核CPU – 因特志强 X5650 – 每个CPU是12核....
- ChatGPT-4 使用 Math Wolfram 插件解决数学脑筋急转弯问题 这篇文章, 我们看一个简单的数学问题(脑筋急转弯), 并用 Python 解决它. 我们看一下LLM(大型语言模型): ChatGPT3.5和ChatGPT4. 通过 ChatGPT-Plus 订阅(目前每月 20 美元 + VAT增值税), 我们可以启用...
- 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
- 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...