我有一个功能可以检查给定的令牌是否具有 Uniswap 工厂地址:
address possibleFactoryAddress;
try IUniswapV2Pair(token).factory() returns (address factory) {
possibleFactoryAddress = factory;
} catch {}
现在这段代码运行良好 -catch
如果给定的令牌没有通过其factory()
函数返回地址(正确地因为它没有该函数),则该块将被执行。然而,当 tx 在 Etherscan 上显示时,它上面有一个大大的黄色感叹号和一个可怕的警告:
Although one or more Error Occurred [execution reverted] Contract Execution Completed
我知道代码没有问题,tx 完成而没有恢复并且所有状态更改都正确存储,但是 Etherscan 是否有可能不显示这个大警告?恐怕这会让很多非技术人员感到困惑并吓跑他们。
谢谢你。