Файл не найден при попытке развернуть смарт-контракт с Hardhat

Я работал над этим проектом и пытался развернуть смарт-контракт в тестовой сети Roptsten с подключением через Infura.

Я получаю следующую ошибку при попытке развернуть ArbitrageFlashLoaner SC в Ropsten через Infura.io.Hardhat v2.7.1.

HardhatError: HH404: Файл @openzeppelin / контракты / math / SafeMath.sol, импортированный из контрактов / UniswapV2Library.sol, не найден.

Я так понимаю, что не может найти @openzeppelin/contracts/math/SafeMath.sol из контрактов / 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 или установить наблюдение за переменной, чтобы увидеть, какие фактические пути и переменные находятся во всех файлах, которые он использует (пошагово через процесс), когда он работает, или где он ищет?

1 ответ

@openzeppelin/contracts/math/SafeMath.solбыл путь контракта SafeMath.sol до реорганизации структуры репозитория 22 февраля 2021 г.

(вы можете проверить это подробно здесь github.com/OpenZeppelin )

Теперь новый путь @openzeppelin/contracts/utils/math/SafeMath.sol.

Так что, если я не ошибаюсь, вы можете просто изменить путь импорта вашей библиотеки в своем контракте, и он должен работать.

Другие вопросы по тегам