如何解决坚固性|在衍生合同中正确使用“使用a for b”语句
我有一个使用Open-Zeppelin SafeMath的合同,但是派生合同无法识别该声明。
Base.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.4;
import "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol";
contract Base {
using SafeMath for uint256;
}
Test.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
政治家的坚固性已更改为0.7,现在我们必须在所有衍生合同中重复该声明:
using A for B
仅影响其中提到的合同。 以前,效果是继承的。现在,您必须重复 所有使用该功能的衍生合同中的using
声明。
https://solidity.readthedocs.io/en/v0.7.4/070-breaking-changes.html#functions-and-events
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。