0

我一直在研究这个项目,并试图将智能合约部署到 Roptsten 测试网络,并通过 Infura 进行连接。

尝试通过 Infura.io 将 ArbitrageFlashLoaner SC 部署到 Ropsten 时出现以下错误。安全帽 v2.7.1。

在此处输入图像描述 HardhatError:HH404:文件@openzeppelin/contracts/math/SafeMath.sol,从contracts/UniswapV2Library.sol 导入,未找到。

所以我知道它无法@openzeppelin/contracts/math/SafeMath.sol从contracts/UniswapV2Library.sol 中找到,但我看到它SafeMath.sol在相对路径中node_modules

在此处输入图像描述

UniswapV2Library.sol是一个包含 .json 的文件夹:

在此处输入图像描述

和内容UniswapV2Library.json

{
  "_format": "hh-sol-artifact-1",
  "contractName": "UniswapV2Library",
  "sourceName": "contracts/UniswapV2Library.sol",
  "abi": [],
.
.
.

我被困在运行的路径问题上npx hardhat...。堆栈跟踪并没有真正帮助我。有没有办法通过某种 IDE 运行它或监视变量以查看它在运行时使用的所有文件中的实际路径和变量(逐步执行该过程),或者它在哪里寻找?

4

1 回答 1

0

@openzeppelin/contracts/math/SafeMath.sol是 2021 年 2 月 22 日存储库结构重组之前 SafeMath.sol 合约的路径

(您可以在此处详细检查github.com/OpenZeppelin

现在新路径是@openzeppelin/contracts/utils/math/SafeMath.sol.

因此,如果我没记错的话,您可以在合同中更改库导入的路径,它应该可以工作。

于 2022-01-23T13:32:43.460 回答