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].
Примеры использования
Инициализация проекта
- Убедитесь в наличии Node.js и npm.
- Создайте каталог и выполните
npm init -y. - Установите зависимости:
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox. - Запустите мастер настройки:
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 2 3 4 5 What is Hardhat? GeeksforGeeks. Дата обращения: 6 июля 2025.
- ↑ 1 2 3 Hardhat Guide. Shardeum. Дата обращения: 6 июля 2025.
- ↑ 1 2 What is Hardhat: A Comprehensive Guide. Helalabs. Дата обращения: 6 июля 2025.
- ↑ 1 2 Hardhat Network. Hardhat.org. Дата обращения: 6 июля 2025.
- ↑ 1 2 3 Hardhat — Ethereum development environment. Hardhat.org. Дата обращения: 6 июля 2025.
- ↑ Creating a Hardhat Project: Complete Beginner's Guide. Coinsbench. Дата обращения: 6 июля 2025.
- ↑ Hardhat Project Setup. W3Schools.io. Дата обращения: 6 июля 2025.
- ↑ Hardhat Tutorial. GitHub. Дата обращения: 6 июля 2025.
- ↑ Compile Contracts. Hardhat.org. Дата обращения: 6 июля 2025.
- ↑ Getting Started with Hardhat. Thirdweb. Дата обращения: 6 июля 2025.
- ↑ Deploy a Smart Contract with Hardhat. Hedera Docs. Дата обращения: 6 июля 2025.
- ↑ How to Create and Deploy a Smart Contract with Hardhat. QuickNode. Дата обращения: 6 июля 2025.
- ↑ Node.js support, Hardhat 3. Дата обращения: 1 апреля 2026.
- ↑ Hardhat vs. Foundry: Which Is Better, or Should You Use Them Hand in Hand?, DEV Community. Дата обращения: 1 апреля 2026.
- ↑ Hardhat Smart Contracts With NodeJs (англ.). Stack Overflow. Дата обращения: 1 апреля 2026.
| Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ». Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ». |