我正在多边形上调试一个恢复的事务,这是我所掌握的所有信息:https://mumbai.polygonscan.com/tx/0xfa86dc4957e3a3da9298b7672b11a20ebe921854fa494dc073920c067c1e693f#internal
如果我正确地阅读了它,它似乎是在说CREATE2恢复了。但是CREATE2可以恢复的原因是什么呢?我知道,如果地址上已经存在某种东西,它就会恢复,但是这里不是这样的,从这里可以看到:https://mumbai.polygonscan.com/address/0x6bb03ca906c0372f384b845bd5ce9ca4327ffbe6
发布于 2022-10-22 07:08:21
链接的事务发出消息调用(也称为内部事务),以收缩部署在0x1079b7398b6efd9845c4db079e6fac8d21cf67b3的事务。
然后,这个0x1079b7...契约尝试在address 0x6bb03ca906c0372f384b845bd5ce9ca4327ffbe6上部署一个新的契约,您可以在温柔调试器中看到新契约的字节码。
据我所知,create2可以基于以下三个原因恢复:
- Not an issue in this case. Acording to the debugger there was ~9M gas units left and the deployment would take only ~1M gas units.- Because you can predetermine the contract address with `create2`, this can happen. However not in this case either, the `0x6bb03c...` address is empty, there's no contract deployed.create2代码恢复。
不幸的是,如果没有新的契约源代码,很难确定构造函数还原的确切原因是什么。无论是意外长度还是输入参数,都会出现构造函数、逻辑错误、试图调用不存在的契约或其他任何事情。发布于 2022-10-23 05:39:43
事实证明,我误读了Polygonscan,仅仅因为内部事务旁边有一个红色标记,并不意味着恢复的是内部事务本身,而是意味着整个事务恢复了。不管怎样,使用温柔的调试器帮助我识别了真正的bug。
https://stackoverflow.com/questions/74160798
复制相似问题