# hardhat

Правило для Cursor задаёт стандарты проекта на Hardhat 3: конфиг на TypeScript, тесты на Solidity и TypeScript, деплой через Ignition.

- правило · `type=rule` · Cursor · ★ 3579
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/hardhat.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/hardhat

## Что делает

Правило подключается к Cursor и подсказывает агенту, как вести Ethereum-проект на Hardhat 3. Оно требует перейти на третью версию: вторая для новой разработки не годится. Конфиг — только `hardhat.config.ts`, с закреплёнными версиями компилятора Solidity и включённым оптимизатором.

Структура проекта расписана по папкам: контракты и Solidity-тесты с расширением `.t.sol` лежат в `contracts/`, скрипты деплоя и интеграционные тесты — на TypeScript в `scripts/` и `test/`. Смешивать JavaScript и TypeScript правило не разрешает. Для юнит-тестов на Solidity берётся `forge-std` и `vm.expectRevert` вместо префикса `testFail`; для сквозных сценариев — `ethers.js` через `@nomicfoundation/hardhat-ethers` и `chai-matchers`.

Деплой идёт через Hardhat Ignition: модуль описывает контракты декларативно, а не императивным скриптом. В конфиге есть ссылки на переменные окружения — `SEPOLIA_RPC_URL`, `PRIVATE_KEY`, `ETHERSCAN_API_KEY`, `COINMARKETCAP_API_KEY`. Без них соответствующие блоки просто не заработают, так что ключи стоит завести заранее. Учтите: Solidity-тесты в Hardhat совместимы с Foundry не полностью — инлайнового NatSpec и скриптовых читкодов вроде `startBroadcast` там нет.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/hardhat.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/hardhat.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/hardhat.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/hardhat.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/hardhat.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/hardhat.mdc

## Когда брать
- перевести проект с Hardhat 2 на Hardhat 3
- разложить контракты, тесты и скрипты по папкам без смешивания JS и TS
- написать юнит-тесты на Solidity с читкодами forge-std
- описать деплой модулем Ignition вместо ручного скрипта
- подключить gas reporter и solhint в конфиг

## Примеры запросов агенту
- Создай `hardhat.config.ts` для Hardhat 3 с закреплёнными версиями Solidity и оптимизатором
- Разложи проект: контракты в `contracts/`, интеграционные тесты на TypeScript в `test/`
- Опиши деплой контракта модулем Hardhat Ignition в `ignition/modules/MyContract.ts`

## Похожие
- [solidity-hardhat-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/solidity-hardhat-cursorrules-prompt-file.md) — правило · ★ 41011
- [ethereum](https://affpapa.org/nevibecode/skills/ethereum.md) — скилл · 737 установок
- [solidity-security](https://affpapa.org/nevibecode/skills/solidity-security.md) — скилл · 15382 установки
- [web3-testing](https://affpapa.org/nevibecode/skills/web3-testing.md) — скилл · 10800 установок
- [solidity](https://affpapa.org/nevibecode/skills/solidity.md) — скилл · 721 установка
- [x-ray](https://affpapa.org/nevibecode/skills/x-ray.md) — скилл · 324 установки

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 69 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
