Файл не найден при попытке развернуть смарт-контракт с 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
.
Так что, если я не ошибаюсь, вы можете просто изменить путь импорта вашей библиотеки в своем контракте, и он должен работать.