我正在和另一个家伙一起开发一个项目,他正在使用SafeMath。
然后,我说一旦我们使用了solidity ^0.8.0,就没有必要了,我认为如果去掉SafeMath,它会减少气体。
然而,我们测试了这两种代码是否有SafeMath。使用SafeMath的代码成本更低。
这是几乎相同的成本,但SafeMath代码使用较少的气体。
说得通吗?我不明白。
我测试了代码和SafeMath代码,成本更低。
发布于 2022-11-11 14:10:06
您可能看到了其他影响气体成本的东西,比如函数名。这里有两个用Remix衡量的气体成本的合同(Solity0.8.7,优化器未启用)。无论哪种方式,这里都有一些基准表明安全并不是更有效的汽油。我觉得你的测试有问题。
pragma solidity 0.8.7;
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
contract SafeMathTest {
using SafeMath for uint256;
// 382 gas
function a(uint256 x) external pure returns (uint256 sum) {
sum = x.add(1);
}
// 327 gas
function b(uint256 x) external pure returns (uint256 sum) {
sum = x + 1;
}
}
contract SafeMathTest2 {
using SafeMath for uint256;
// 372 gas
function b(uint256 x) external pure returns (uint256 sum) {
sum = x.add(1);
}
// 349 gas
function a(uint256 x) external pure returns (uint256 sum) {
sum = x + 1;
}
}https://stackoverflow.com/questions/74360752
复制相似问题