Skip to content

shinjiikari256/hardhat-ts-template

Repository files navigation

Sample Hardhat Project

Структура проекта

  • ./contracts – контракты
  • ./common – часто используемые в разным проектах функции и типы
  • ./test – чистые тесты
  • ./gas – те же тесты, но в них сожно выводить вспомогательную информацию (в частности, смотреть, сколько газа тратится в определённых сценариях)
  • ./scripts – скрипты для деплоя и проведения транзакций для уже развёрнутых контрактов
  • ./verify – просто вспомогательная папка для ручного изменения импортов в контрактах для верификации

Переменные окружения

Нужные переменные определены в файле ./dist.env. Чтобы задать им значения, можно скопировать dist.env в любой другой файл. По умолчанию конфиг смотрит файл .env. Чтобы использовать другой файл нужно задать переменную окружения DOTENV_CONFIG_PATH или указать нужный файл прямо в hardhat.config.ts.

Для работы с реальной сетью (основной или тестовой) нужно задать следующие переменные (конкретно эти, как видно по названию, для тестовой сети Goerli):

  • GOERLI_URL_NET – адрес узла, через который идут транзакции
  • GOERLI_API_KEY – API ключ приложения

Эти значения можно взять, например на сайте Alchemy или Infura.

  • GOERLI_PRIVATE_KEY – приватный ключ кошелька (можно взять в метамаске)

Чтобы видеть стоимость транзакций при запуске тестов с gas-reporter, можно так же задать

Скрипты

  • gas – запуск тестов из папки ./gas
  • test – запуск тестов из папки ./test
  • test:gas – запуск тестов с gas-reporter'ом
  • test:c – измерение покрытия контрактов тестами
  • bc – запуск локальной ноды
  • deploy – деплой контрактов в локальную сеть
  • deploy:test – деплой контрактов в тестовую сеть (точнее, в Goerli)
  • deploy:mainnet – деплой контрактов в реальную сеть
  • compile – компиляция контрактов и создание ts-файлов для контрактов

Для запуска других скриптов можно использовать подобную команду:

npx hardhat run scripts/send-tx.ts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published