NEAR退款收据gas_burnt与tokens_burnt非零且不一致的技术问询
NEAR退款收据字段异常问题解析
问题背景
根据NEAR官方文档说明,退款收据中的gas_burnt和tokens_burnt字段值都应为0,官方示例如下:
{ "block_hash": "Gm6TFS1ZxmA45itVj8a7vE8yJF8V5hXeNF1EhEVr7GVS", "id": "7NMpF9ZGwSj48bpvJK2xVobJkTasEkakazTKi2zotHR4", "outcome": { "executor_id": "near", "gas_burnt": 0, "logs": [], "metadata": { "gas_profile": null, "version": 1 }, "receipt_ids": [], "status": { "SuccessValue": "" }, "tokens_burnt": "0" }, "proof": [] }
但执行创建账户交易后,通过以下命令查询交易状态:
near tx-status mlibre.testnet:v3eawe5UJmMBvNQe2rgoKEuS92HfXMtM5BLLRcBix39
得到的结果中,gas_burnt为223182562500,tokens_burnt为0,具体返回内容如下:
{ block_hash: 'BXkhJFVsWcDgaFznMTwk674WvzokS62pfPL879EbrmAN', id: 'EXNe4EKTFSm75TrGnvtUhMTqxsoUPDPYw7jEoDi3LweL', outcome: { executor_id: 'mlibre.testnet', gas_burnt: 223182562500, logs: [], metadata: { gas_profile: [], version: 3 }, receipt_ids: [], status: { SuccessValue: '' }, tokens_burnt: '0' }, proof: [ { direction: 'Right', hash: '97J5UUmsVCKeThLf2RxQ4ZkjySdNvVzaUsRrh1YJQZEn' }, { direction: 'Left', hash: '5HqirRFCGCpNF3A8bE9v9xLX8ZzaByPsiGPdoWraEZPU' }, { direction: 'Right', hash: 'HU97NYSfmXZftzDakJmcYc9xy4ZS2m8LWpmPSuG9asZ9' } ] }
字段含义与异常原因
字段含义
gas_burnt:代表该收据执行过程中实际消耗的Gas总量;tokens_burnt:代表消耗Gas对应的NEAR代币数量,计算公式为tokens_burnt = gas_burnt * 1e-18 * gas_price。
异常原因
- 收据类型混淆:你查询到的并非官方文档中提到的退款收据,而是创建账户交易里负责执行核心操作的收据。退款收据是交易预付Gas未被完全消耗时,系统生成的退还剩余Gas对应代币的凭证;而创建账户需要完成链上存储写入、账户初始化等操作,必然会消耗Gas,因此该操作收据的
gas_burnt不为0。 - 代币未燃烧的原因:
tokens_burnt为0说明本次操作的Gas费用并未实际从账户中扣除。可能的情况包括:测试网环境下官方提供Gas补贴,无需燃烧代币;或发起交易的账户通过特殊机制(如预付费池)承担了Gas成本,但未触发代币燃烧逻辑;也可能该收据是Gas退款流程的中间环节,最终代币退还会体现在后续生成的退款收据中。 - 测试网特性影响:如果是在Testnet测试环境中,NEAR官方会发放免费测试资源,部分操作仅统计Gas使用量,不会实际燃烧代币,这是测试网的正常特性。
内容的提问来源于stack exchange,提问作者mlibre
相关产品推荐
相关产品推荐

