首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将safeMath div迁移到Solidity 8

将safeMath div迁移到Solidity 8
EN

Stack Overflow用户
提问于 2022-01-10 10:37:54
回答 1查看 390关注 0票数 1

我试图将safeMath代码迁移到Solity8,除了div之外,我几乎所有的算术操作都有。

TypeError:在uint256.中,在依赖于参数的查找之后找不到或看不到成员"div“

代码语言:javascript
复制
currentShares = (_amount * (totalShares)).div(pool);

在文档中,他们谈到了一个新属性,但我不知道如何实现它-- Panic(uint256)

编辑:这是一个简单的解决方案吗?

代码语言:javascript
复制
   currentShares = (_amount * (totalShares)) / (pool);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-10 13:13:07

不需要SafeMath在0.8+上,因为逻辑是在语言级别上实现的。

算法操作恢复到下溢和溢出。您可以使用unchecked { ... }使用前面的包装行为。

来源:https://docs.soliditylang.org/en/v0.8.11/080-breaking-changes.html

代码语言:javascript
复制
currentShares = (_amount * (totalShares)) / (pool);

在v0.8+中,这是一个正确的解决方案,在遇到溢出(除以零)时抛出异常,并引发下溢(在此代码段中不可能,但通常也会引发异常)。未被执行的功能会恢复事务/调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70651055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档