坚固性 |在派生合约中正确使用"using a for b"声明



我有一个使用Open Zeppelin SafeMath的合约,但派生合约无法识别该声明。

碱性溶胶

// SPDX-License-Identifier: MIT
pragma solidity ^0.7.4;
import "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol";
contract Base  {
using SafeMath for uint256;
}

测试.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.7.4;
import "Base.sol";
contract Test is Base {
function getnum(uint256 _number) external view returns (uint256) {
return _number.add(_number);
}
}

但我一直收到这个错误:

Member "add" not found or not visible after argument-dependent lookup in uint256.

using A for B状态的solidity为0.7,现在我们必须在所有派生合约中重复该语句:

using A for B只影响其中提到的合同。以前,这种影响是遗传的。现在,你必须重复所有使用该功能的派生合约中的using语句。

https://solidity.readthedocs.io/en/v0.7.4/070-breaking-changes.html#functions-和事件

相关内容

  • 没有找到相关文章

最新更新