我一直要求我的客户在转出他的USDT时保存ETH,他希望他的新的USDT地址中没有或很少有ETH。请假设USDT地址没有初始ETH,接下来我要将一些ETH转到其中。
在长时间引用其他旧事务之后。我决定使用26500作为气体限制(我保证收信人的地址有USDT),在此之后不久就需要ETH了,现在我有了足够的汽油来传送USDT。
在将新的tx广播到网络后,过了一会儿,我遇到了故障.我试图用更高的油量限制,直到我放弃,并把它设置为60000。那现在你猜怎么着,tx成功了!而实际消耗的气体甚至少于26500。
有人解释为什么会发生这种事吗?为什么我不能设定精确的汽油限额来解决我的问题?转让合同中的转让有特殊条件吗?谢谢你的进阶。
发布于 2021-02-22 06:22:24
最后我设法为自己找到了这个答案。
这种现象之所以发生,是因为合同执行触发了退款的气体机制。
回到时间,当我转移我的整个USDT,在合同执行,脚本是触发操作码sstore[x] = 0删除我的地址信息,因为我什么都不持有,这反过来将退还我15,000瓦斯。
为了得到退款,必须设定更高的汽油限额。值得注意的是,退款总是在合同执行结束时发生的。所以你必须确保你有足够的汽油拿到退款。例如,一个过程需要300气体才能得到50股气体的退款,如果你设置了250瓦斯,那么你就会遇到汽油出问题,损失了所有的资金。
汽油退款是如何运作的? https://www.btcschools.net/ethereum/eth_gas.php的进一步研究
https://ethereum.stackexchange.com/questions/92339
复制相似问题