Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem

Курс о разработке смарт-контрактов для Ethereum и Polygon на актуальном стеке: Solidity 0.8.35, Hardhat 3, viem 2, TypeScript 7. Через все 18 глав идёт один сквозной проект — протокол продажи и проверки билетов Passage: от первого контракта до тестов, деплоя в тестовую сеть, оптимизации газа, обновляемости, DAO и…
Средний уровень
6–8 часов в неделю

Чему вы научитесь

  • Писать контракты на Solidity 0.8 с учётом модели исполнения EVM, стоимости операций и границ доверия
  • Тестировать контракты на четырёх уровнях: unit, интеграция, fuzz на forge-std и инвариантные stateful-сценарии
  • Проектировать контроль доступа на ролях и разделять протокол на контракты с минимальными привилегиями
  • Работать с токенами ERC-20, ERC-721, ERC-2981 и их расширениями из OpenZeppelin 5
  • Использовать подписи EIP-712 и Merkle-доказательства для авторизации вне сети
  • Собирать клиентский слой на viem и TypeScript: типизированные вызовы, события, индексатор, CLI
  • Разворачивать протокол через Hardhat Ignition с параметрами по сетям и верифицировать исходники
  • Измерять и снижать расход газа: упаковка storage, bitmap, транзиентное хранилище, настройки оптимизатора
  • Делать контракты обновляемыми через UUPS-прокси, не ломая раскладку хранилища
  • Передавать управление протоколом в DAO через Governor и TimelockController
  • Проводить базовый аудит: модель угроз, чеклист ревью, поиск классических уязвимостей, отчёт о находках

О курсе

Разработчик, который умеет писать серверный код, при переходе в блокчейн сталкивается не с новым языком, а с новой моделью исполнения. Код стоит денег за каждую операцию. Состояние публично, а транзакции видны до включения в блок. Развёрнутый контракт нельзя исправить патчем. Ошибка в порядке двух строк уводит деньги пользователей. Этот курс — про то, как писать контракты с учётом этих ограничений, а не про синтаксис Solidity сам по себе.

Сквозной проект

Через весь курс идёт один протокол — Passage, продажа и проверка билетов на мероприятия. Он начинается с реестра событий на 60 строк и к концу состоит из одиннадцати контрактов:

  • реестр событий с тарифами, окнами продаж и машиной состояний;
  • билет как ERC-721 с детерминированным идентификатором и роялти ERC-2981;
  • касса с покупкой за стейблкоин, за ETH по ценовому фиду, по подписи permit и по Merkle-доказательству предпродажи;
  • казначейство с разделением выручки и pull-выплатами;
  • вход по подписанному EIP-712 пропуску с гашением билета через bitmap;
  • вторичный рынок с escrow, потолком цены и роялти;
  • обновляемый реестр на UUPS с ERC-7201 namespaced storage;
  • Governor и TimelockController, которым передаётся управление параметрами.

Рядом с протоколом — клиентский слой на viem и TypeScript: типизированные обёртки, индексатор событий, CLI, скрипты подписи и гашения пропусков, модули Hardhat Ignition для деплоя.

Чем этот курс отличается

Основа каждого урока — исходный код, который компилируется и проходит тесты, а не пересказ документации. Числа в курсе измерены: расход газа снят с реальных прогонов --gas-stats, размеры байткода — с артефактов компилятора, стоимость приёмов оптимизации — с отдельного стенда в проекте.

Безопасность разбирается не списком уязвимостей, а через модель угроз протокола: каждая угроза имеет вектор, контрмеру в коде и тест, который эту контрмеру проверяет. Уязвимые контракты лежат в проекте рядом с исправленными, и к каждому написан тест-эксплойт.

Стек

Solidity 0.8.35 (custom errors, transient storage, ERC-7201), Hardhat 3.15 с плагином viem, viem 2.55+, TypeScript 7, Node.js 24, OpenZeppelin Contracts 5.6, forge-std для fuzz-тестов на Solidity. Легаси-подходов в курсе нет: ни require со строками, ни SafeMath, ни ethers v5, ни hardhat-deploy.

Как проходит обучение

Курс текстовый, без видео: 154 урока в 18 главах. Урок устроен как глава технической книги. Сначала инженерная ситуация, затем разбор решения по исходному коду, затем последствия в реальной сети и типичные ошибки. Заканчивается урок практическим заданием и вопросами для самопроверки. Главы с третьей по пятнадцатую завершаются тестовыми задачами, у каждой есть объяснение, которое видно после неверного ответа.

Сквозной проект выложен целиком: контракты, тесты на Solidity и TypeScript, модули деплоя, клиентский слой, скрипты и документация. Всё запускается локально одной командой, без тестовой сети и без затрат.

Проверяемых заданий на код в курсе нет. Практика построена вокруг локального проекта, который вы собираете и расширяете у себя.

Для кого этот курс

Курс рассчитан на разработчиков уровня middle, которые уверенно программируют, но не работали с блокчейном. Опыт с бэкендом, TypeScript или другим статически типизированным языком достаточен: понятия блоков, транзакций, газа и подписей разбираются с нуля, но без пересказа основ программирования. Курс подойдёт бэкенд-разработчику, который переходит в web3; фронтенд-разработчику, которому нужно понимать контракты, с которыми работает интерфейс; разработчику, уже писавшему контракты по старым туториалам и желающему перейти на актуальный стек; тестировщику или аудитору, которому нужна инженерная база. Курс не подойдёт тем, кто ищет введение в программирование, обзор криптовалют и инвестиций или готовые схемы заработка. Здесь нет ни трейдинга, ни токеномики, ни разработки блокчейна с нуля.

Начальные требования

Уверенное программирование на любом языке и понимание асинхронного кода. Базовый TypeScript или JavaScript: типы, промисы, модули. Опыт работы с командной строкой, npm и git.

Знание блокчейна не требуется: блоки, аккаунты, транзакции, газ и подписи разбираются в первой главе.

Для практики нужен компьютер с Node.js 24 или новее и любым редактором кода. Все запуски идут в локальной симулированной сети — тестовые монеты и кошелёк не обязательны. Главы про деплой и верификацию можно пройти в тестовой сети Sepolia или Polygon Amoy, для этого понадобится бесплатный доступ к RPC и тестовые монеты из крана.

Программа курса

В курс входят

  • 154 урока
  • 87 тестов
загружаем...

Наши преподаватели

Что вы получаете

  • 154 текстовых урока в 18 главах с разбором исходного кода
  • Тестовые задачи к главам с третьей по пятнадцатую, с объяснением после неверного ответа
  • Полный код сквозного проекта Passage: контракты протокола, учебные контракты с намеренными уязвимостями и тесты на Solidity и TypeScript
  • Модули Hardhat Ignition, клиентский слой на viem, индексатор событий и CLI
  • Восемь рабочих документов протокола: карта ролей, модель угроз, чеклисты аудита, деплоя и обновления, отчёт внутреннего аудита, раскладка storage, передача управления DAO
  • Практические задания и вопросы для самопроверки в каждом уроке
  • Доступ к материалам курса без ограничения по времени

Сколько стоит обучение

999 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям