执行Hbar转账代码后收据无交易ID,该如何获取?
获取Hedera转账交易ID的方法
你可以通过两种方式获取交易ID,优先推荐第一种:
直接从执行后的交易响应获取
execute()方法返回的TransactionResponse对象本身就携带了交易ID,不需要等待收据生成就能拿到:const sendHbar = await new TransferTransaction() .addHbarTransfer(myAccountId, Hbar.fromTinybars(-1000)) // 转出账户 .addHbarTransfer(newAccountId, Hbar.fromTinybars(1000)) // 转入账户 .execute(client); // 提取交易ID const transactionId = sendHbar.transactionId; // 转换为字符串格式方便查看 console.log("交易ID:", transactionId.toString()); let receipt = await sendHbar.getReceipt(client);从收据中获取(若SDK版本支持)
如果你坚持从收据获取,确认使用的Hedera JavaScript SDK版本是否为较新版本,新版SDK中TransactionReceipt对象包含transactionId属性,可直接访问:let receipt = await sendHbar.getReceipt(client); const transactionIdFromReceipt = receipt.transactionId; console.log("从收据获取的交易ID:", transactionIdFromReceipt.toString());
注意:如果收据中无法获取交易ID,优先使用第一种方法,这是最稳定可靠的方式,因为交易提交后立即就能拿到交易ID,无需等待上链确认。
内容的提问来源于stack exchange,提问作者Pathorn Teng
相关产品推荐
相关产品推荐

