Hardhat

Hardhat — среда разработки и набор инструментов с открытым исходным кодом для создания, тестирования, отладки и развёртывания смарт-контрактов на платформе Ethereum. Hardhat объединяет компилятор Solidity, локальную тестовую сеть, систему плагинов и средства автоматизации задач, позволяя разработчикам строить децентрализованные приложения (dApps) без необходимости переключаться между разрозненными утилитами[1].

Общие сведения
Hardhat
Тип Среда разработки смарт-контрактов
Написана на JavaScript и TypeScript
Сайт hardhat.org

Функции

Hardhat предлагает ряд возможностей, упрощающих полный цикл разработки смарт-контрактов.

  • Комплексная среда — в одном инструменте доступны компиляция, тестирование, отладка и развёртывание контрактов[1][2].
  • Встроенный компилятор Solidity автоматически превращает исходный код в байт-код EVM и запускается командой npx hardhat compile[1].
  • Надёжная среда тестирования поддерживает юнит-тесты на JavaScript, TypeScript и Solidity, что облегчает раннее обнаружение ошибок[2].
  • Расширенные средства отладки включают трассировку стека Solidity, поддержку console.log и подробные сообщения об ошибках[1].
  • Удобное развёртывание позволяет деплоить контракты в любую EVM-совместимую сеть, включая встроенную локальную Hardhat Network[3].
  • Hardhat Network умеет «форкать» состояние основной сети Ethereum и предоставляет 20 тестовых аккаунтов с балансом 10 000 ETH каждый[1][4].
  • Плагинная система (сотни расширений) обеспечивает интеграцию с Ethers.js, Truffle, OpenZeppelin и другими инструментами[5].
  • Hardhat Runner — встроенный исполнитель задач для автоматизации повторяющихся операций и создания пользовательских CLI-команд[5].
  • Поддержка нескольких сетей даёт возможность развёртывать контракты в mainnet, Goerli, Sepolia и других цепочках[3].
  • Нативная поддержка TypeScript обеспечивает статическую типизацию и автодополнение в скриптах и тестах[5].

Примеры использования

Инициализация проекта

  1. Убедитесь в наличии Node.js и npm.
  2. Создайте каталог и выполните npm init -y.
  3. Установите зависимости: npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox.
  4. Запустите мастер настройки: npx hardhat init — выберите шаблон JavaScript или TypeScript и при необходимости добавьте .gitignore[6][7][8].

Компиляция Команда npx hardhat compile запускает компилятор Solidity. Успешная сборка создаёт каталоги artifacts/ (ABI и байт-код) и cache/; при отсутствии изменений Hardhat выводит «Nothing to compile». Принудительное перекомпилирование выполняется флагом --force[9][10].

Тестирование Фреймворк Mocha и библиотека Chai входят в @nomicfoundation/hardhat-toolbox. Запуск npx hardhat test поднимает временную сеть, компилирует контракты и выводит результаты в консоль[2].

Развёртывание Скрипт scripts/deploy.js использует ethers.getContractFactory() и deploy(). В проектах на Ethers.js v6 следует дожидаться подтверждения транзакции методом await contract.waitForDeployment(); deployed() актуален только для Ethers.js v5[11]. Команда для деплоя в тестовую сеть: npx hardhat run scripts/deploy.js --network goerli. При использовании запущенной локальной ноды (npx hardhat node) параметр --network можно опустить или указать localhost[12].

Локальная сеть npx hardhat node запускает JSON-RPC-сервер на http://127.0.0.1:8545 и выводит 20 тестовых аккаунтов с балансом 10 000 ETH и их приватными ключами, что позволяет безопасно тестировать контракты в изолированной среде[4].

Критика

Поскольку Hardhat базируется на Node.js, он проигрывает в производительности инструментам на Rust (как Foundry). Компиляция крупных проектов может занимать в 1.5-2 раза больше времени (например, 39 секунд против 26 в некоторых тестах). Тесты пишутся на JavaScript или TypeScript. Это требует от разработчика переключения между Solidity (код контрактов) и JS/TS (логика тестов), что замедляет процесс и требует знания дополнительного языка[13][14][15].

Примечания

  1. 1 2 3 4 5 What is Hardhat? GeeksforGeeks. Дата обращения: 6 июля 2025.
  2. 1 2 3 Hardhat Guide. Shardeum. Дата обращения: 6 июля 2025.
  3. 1 2 What is Hardhat: A Comprehensive Guide. Helalabs. Дата обращения: 6 июля 2025.
  4. 1 2 Hardhat Network. Hardhat.org. Дата обращения: 6 июля 2025.
  5. 1 2 3 Hardhat — Ethereum development environment. Hardhat.org. Дата обращения: 6 июля 2025.
  6. Creating a Hardhat Project: Complete Beginner's Guide. Coinsbench. Дата обращения: 6 июля 2025.
  7. Hardhat Project Setup. W3Schools.io. Дата обращения: 6 июля 2025.
  8. Hardhat Tutorial. GitHub. Дата обращения: 6 июля 2025.
  9. Compile Contracts. Hardhat.org. Дата обращения: 6 июля 2025.
  10. Getting Started with Hardhat. Thirdweb. Дата обращения: 6 июля 2025.
  11. Deploy a Smart Contract with Hardhat. Hedera Docs. Дата обращения: 6 июля 2025.
  12. How to Create and Deploy a Smart Contract with Hardhat. QuickNode. Дата обращения: 6 июля 2025.
  13. Node.js support, Hardhat 3. Дата обращения: 1 апреля 2026.
  14. Hardhat vs. Foundry: Which Is Better, or Should You Use Them Hand in Hand?, DEV Community. Дата обращения: 1 апреля 2026.
  15. Hardhat Smart Contracts With NodeJs (англ.). Stack Overflow. Дата обращения: 1 апреля 2026.
© Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ».
Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ».