请在下面的以太坊交易中查看:
0xe9adbe7e538ccf9f9d4ede8cc4200581dac131976738d3bbf0eb90700cd8a2b6
一笔以太坊交易消耗至少35,000 GAS来转移合约上的 ERC20 代币,以替换两个账户余额和一个事件。
但是,这笔交易只用了 21,003 GAS。这怎么可能?
请在下面的以太坊交易中查看:
0xe9adbe7e538ccf9f9d4ede8cc4200581dac131976738d3bbf0eb90700cd8a2b6
一笔以太坊交易消耗至少35,000 GAS来转移合约上的 ERC20 代币,以替换两个账户余额和一个事件。
但是,这笔交易只用了 21,003 GAS。这怎么可能?
一笔以太坊交易消耗至少 35,000 GAS 来转移合约上的 ERC20 代币以替换两个账户余额和一个事件
这种说法不一定正确。消耗的气体量取决于该帐户的先前和/或更新后余额是否为 0。
来自以太坊黄皮书(OPCODE Name|Gas cost|Description):
Gsset 20000 当存储值从零设置为非零时,为 SSTORE 操作付费。
Gsreset 5000 当存储值的零值保持不变或设置为零时,为 SSTORE 操作付费。
Rsclear 15000 当存储值从非零设置为零时给予退款(添加到退款计数器)。
在您发布的交易中,发件人转移了他们所有的代币,将余额设置为 0,因此退还了 15000 天然气。