0%

solidity | SafeMath

其具体位置如下

@openzeppelin/contracts/utils/math/SafeMath.sol

需要特别注意的是,@openzeppelin 不同版本下,内部实现差距非常大,版本之间完全不兼容,所以,需要对照源码进行查看。

并且,SafeMath 的使用,也要正确使用。

比如下面的案例是没有正确使用的。

因为不同版本的 SafeMath.sol 差距非常大,比如有一个版本是

1
2
3
4
5
function add(uint256 a,uint256 b) internal returns(uint256){
uint256 c = a + b;
// assert(c >= a);
return c;
}

可以看到其中 assert 是注释的,所以,如果用 add 的话,没有一点用处。

更多的案例参考上面的链接。

请我喝杯咖啡吧~