Я создал этот проект как напоминалку или, если угодно, шаблон для последующих проектов.
Этот проект использует и готов для настройки следующих плагинов:
- solidity-coverage - покрытие кода контрактов тестами
- hardhat-gas-reporter - оценка затрат газа, использует CoinMarketCap для получения цен
- hardhat-etherscan - для верификации контрактов на Etherscan/Bscscan/итд
Также в hardhat.config.json
я добавил настройку работы с актуальной тестовой сетью Goerli используя сервис Alchemy.
ВНИМАНИЕ: скопировать .env.example
в .env
!
Были использованы следующие команды:
mkdir {project}
cd {project}
npm init
npm install --save-dev hardhat
npx hardhat
npx hardhat clean && npx hardhat compile
npx hardhat test [--grep text]
REPORT_GAS=true npx hardhat test
npx hardhat coverage
В коде тестов можно добавить .only
к it
, чтобы выполнить конкретный тест, либо использовать grep
в консоли при вызове тестов.
Код задач находится в папке tasks
, пример запуска находится в коде.
npx hardhat node
npx hardhat run scripts/deploy.js --network localhost
В файле .env.example
требуется прописать ALCHEMY_FORK_API_KEY
npx hardhat node --config hardhat-fork.config.js
npx hardhat verify --network goerli {contractAddress}
Для удобства, чтобы не писать npx hardhat
и автоматически подставлялись команды, можно поставить:
sudo npm install --global hardhat-shorthand
hardhat-completion install
Теперь можно набирать команды следующим образом добивая их TAB-ом:
> hh te[press TAB]
> hh test