我在etherscan.io中看到过一些交易。但是我发现即使在同一个智能合约中调用相同的函数,txn使用的气体也是不同的。我试图发现输入数据可能会导致它。真的?
答案 0 :(得分:0)
输入数据可能会有所不同,但是智能合约中存储的状态可能会有所不同(例如更改循环迭代的次数)。同样,如果将非零数据存储在以前保存零数据的状态变量中,反之亦然,则将更改气体使用量。例如,一个简单的切换布尔变量的函数将不会在任何两个连续的调用中使用相同数量的gas。
查看https://ethereum.stackexchange.com/,以解决诸如此类的未来问题!
答案 1 :(得分:-1)
每次你在合同中调用一个需要在块中进行状态更改的函数时,它会花费x量的气体,因此每次在需要状态更改的合同中调用不同或相同的函数时,您会看到x天然气的数量与其税收Id一起被扣除。这就是你在相同功能上看到不同Txn的原因。
有关Gas和Transaction的更多信息,请参见以下链接。 http://solidity.readthedocs.io/en/develop/introduction-to-smart-contracts.html