我试图将safeMath代码迁移到Solity8,除了div之外,我几乎所有的算术操作都有。
TypeError:在uint256.中,在依赖于参数的查找之后找不到或看不到成员"div“
currentShares = (_amount * (totalShares)).div(pool);在文档中,他们谈到了一个新属性,但我不知道如何实现它-- Panic(uint256)
编辑:这是一个简单的解决方案吗?
currentShares = (_amount * (totalShares)) / (pool);发布于 2022-01-10 13:13:07
不需要SafeMath在0.8+上,因为逻辑是在语言级别上实现的。
算法操作恢复到下溢和溢出。您可以使用
unchecked { ... }使用前面的包装行为。
来源:https://docs.soliditylang.org/en/v0.8.11/080-breaking-changes.html
currentShares = (_amount * (totalShares)) / (pool);在v0.8+中,这是一个正确的解决方案,在遇到溢出(除以零)时抛出异常,并引发下溢(在此代码段中不可能,但通常也会引发异常)。未被执行的功能会恢复事务/调用。
https://stackoverflow.com/questions/70651055
复制相似问题