如何将 SafeMath.sol 正确导入合约

Bre*_*nan 5 solidity openzeppelin

这是我一直在处理的一个问题。我的临时解决方案是在我的 Contracts 目录中创建一个 SafeMath.sol 文件并直接从那里导入它。不过,我一直在寻找这样的“清晰的解决方案” ......老办法似乎是直接从GitHub的链接导入它,因为在某些回购和其他堆栈溢出的职位像看到这样的

但是,正确的方法似乎是安装相应的 oz 包(@openzeppelin/contracts-ethereum-package)并将文件直接导入到所需的合约中,即

import "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol";

但是,使用 VSCode,我仍然收到错误Source "@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol" not found: File import callback not supported

也就是说,如何正确导入 SafeMath?

编辑:我正在使用 pragma solidity ^0.6.0;

小智 13

我翻阅了node_modules包裹@openzeppelin/contracts。这是截至发布时当前正确的导入路径:

import "@openzeppelin/contracts/utils/math/SafeMath.sol";
Run Code Online (Sandbox Code Playgroud)


Bre*_*nan 6

Solidity 版本 8 不再需要此功能