1

请在下面的以太坊交易中查看:

0xe9adbe7e538ccf9f9d4ede8cc4200581dac131976738d3bbf0eb90700cd8a2b6

一笔以太坊交易消耗至少35,000 GAS来转移合约上的 ERC20 代币,以替换两个账户余额和一个事件。

但是,这笔交易只用了 21,003 GAS。这怎么可能?

4

1 回答 1

1

一笔以太坊交易消耗至少 35,000 GAS 来转移合约上的 ERC20 代币以替换两个账户余额和一个事件

这种说法不一定正确。消耗的气体量取决于该帐户的先前和/或更新后余额是否为 0。

来自以太坊黄皮书(OPCODE Name|Gas cost|Description):

Gsset 20000 当存储值从零设置为非零时,为 SSTORE 操作付费。

Gsreset 5000 当存储值的零值保持不变或设置为零时,为 SSTORE 操作付费。

Rsclear 15000 当存储值从非零设置为零时给予退款(添加到退款计数器)。

在您发布的交易中,发件人转移了他们所有的代币,将余额设置为 0,因此退还了 15000 天然气。

于 2018-07-01T16:26:00.253 回答