Курс на Stepik
Обложка курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem» на Stepik
999 ₽

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

Открыть на
STEPIK.ORG

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

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Учеников на курсе 0
Сертификаты, выданные на курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Сертификатов выдано 0
Отзывы о курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Отзывов получено 0
Рейтинг курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Рейтинг курса 0.000
Уроки в курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Количество уроков 154
Тесты в курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Количество квизов 87
Стоимость курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Стоимость курса 999 ₽ —
Обновления курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Обновления курса — —
Дата публикации курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Дата публикации курса — ———
Последнее обновление курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem»Последнее обновление — ———
Сложность normal — ———

Содержание курса

Разделы в курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem» 18 разделов Уроки в курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem» 154 урока Тесты в курсе «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem» 87 тестов Последнее обновление курса «Разработка смартконтрактов для EVM: Solidity, Hardhat, Viem» обн. 27 октября 2026

Блокчейн и EVM глазами разработчика

8 уроков
1. Что такое блокчейн как система хранения состояния ↗
2. Аккаунты, ключи и адреса ↗
3. Транзакции и подписи ↗
4. Газ, комиссии и почему код стоит денег ↗
5. EVM — виртуальная машина и её модель памяти ↗
6. Что такое смарт-контракт и чем он не является ↗
7. Ethereum, Polygon, L2 и совместимость EVM ↗
8. Проект Passage — что мы построим ↗

Инструменты: Node.js, TypeScript 7, Hardhat 3, Viem

9 уроков
1. Рабочее окружение и создание проекта Hardhat 3 ↗
2. hardhat.config.ts — конфигурация как код ↗
3. TypeScript 7 в проекте контрактов ↗
4. Первый контракт: Ledger ↗
5. Сеть Hardhat: симуляция EVM локально ↗
6. Viem: клиенты, транспорты, аккаунты ↗
7. Тесты на node:test — первый набор ↗
8. Solidity-тесты и forge-std ↗
9. Секреты, keystore и подготовка к тестовым сетям ↗

Solidity: типы, состояние и функции

10 уроков
1. Структура файла и контракта ↗
2. Значимые типы: числа, адреса, байты, bool ↗
3. Расположение данных: storage, memory, calldata ↗
4. Функции: видимость, модификаторы состояния, возврат значений ↗
5. Ошибки: revert, require, custom errors ↗
6. События и логи ↗
7. Отображения, массивы и структуры ↗
8. Перечисления, пользовательские типы и время ↗
9. Модификаторы и контроль доступа на уровне языка ↗
10. Практика — EventRegistry, первый контракт проекта Passage ↗

Solidity: контракты, наследование, взаимодействие

9 уроков
1. Наследование и abstract-контракты ↗
2. Интерфейсы и ERC-165 ↗
3. Библиотеки и using for ↗
4. Вызовы между контрактами и передача ETH ↗
5. delegatecall, контекст исполнения и msg.sender ↗
6. Создание контрактов из контрактов: new, CREATE и CREATE2 ↗
7. Кодирование ABI: abi.encode, abi.encodePacked, abi.decode ↗
8. Приём ETH: receive и fallback ↗
9. Практика — SeatMap и связь с EventRegistry ↗

Тестирование смарт-контрактов в Hardhat 3

9 уроков
1. Стратегия тестирования контрактов ↗
2. Фикстуры и изоляция состояния ↗
3. Проверка ошибок, событий и балансов через viem.assertions ↗
4. Управление временем и блоками ↗
5. Impersonation, балансы и форк сети ↗
6. Solidity-тесты глубже: cheatcodes и fuzz ↗
7. Invariant-мышление и тесты свойств ↗
8. Покрытие, gas-статистика и CI ↗
9. Практика — полный тестовый набор EventRegistry ↗

Токены ERC-20

8 уроков
1. Стандарт ERC-20 как интерфейс ↗
2. Реализация на OpenZeppelin 5 ↗
3. approve / transferFrom и модель разрешений ↗
4. SafeERC20 и токены с сюрпризами ↗
5. ERC-20 Permit (EIP-2612) ↗
6. Голосующий токен ERC20Votes ↗
7. Ошибки проектирования токенов ↗
8. Практика — MockUSD в проекте и faucet-скрипт ↗

NFT: ERC-721, ERC-1155 и метаданные

8 уроков
1. ERC-721 как стандарт уникальных токенов ↗
2. Реализация TicketNFT на OpenZeppelin ↗
3. Метаданные и tokenURI ↗
4. Расширения: Enumerable, Burnable, Pausable ↗
5. Роялти ERC-2981 ↗
6. ERC-1155: мульти-токен ↗
7. Проверка интерфейсов и совместимость с кошельками ↗
8. Практика — TicketNFT в проекте ↗

Passage: события, тарифы и первичная продажа

10 уроков
1. Доменная модель протокола ↗
2. EventRegistry: тарифы, окна продаж и статусы ↗
3. BoxOffice: покупка билета за MockUSD ↗
4. Покупка с permit одной транзакцией ↗
5. Отмена события и возвраты ↗
6. Pausable и аварийный стоп продаж ↗
7. Treasury: разделение выручки и pull-выплаты ↗
8. Продажа за ETH через ценовой фид ↗
9. Merkle-предпродажа для ранних покупателей ↗
10. Практика — сквозной сценарий продажи ↗

Контроль доступа и архитектурные паттерны

8 уроков
1. Ownable и Ownable2Step ↗
2. AccessControl и роли ↗
3. Проверки на границе контракта ↗
4. Checks-Effects-Interactions и reentrancy ↗
5. Pull-over-push и withdrawal pattern ↗
6. Состояние как машина состояний ↗
7. Разделение контрактов и минимальные привилегии ↗
8. Практика — карта ролей Passage ↗

Подписи и off-chain авторизация

8 уроков
1. ECDSA и восстановление адреса ↗
2. EIP-712 — типизированные данные ↗
3. CheckIn: подписанный пропуск на вход ↗
4. Nonces и защита от replay ↗
5. Permit, meta-транзакции и кто платит за газ ↗
6. Merkle-доказательства как второй способ off-chain списков ↗
7. Подписи со стороны клиента на TypeScript ↗
8. Практика — полный сценарий входа на мероприятие ↗

Viem и TypeScript: клиентский слой

10 уроков
1. Архитектура клиентского кода ↗
2. ABI и типизация ↗
3. getContract и типизированные обёртки ↗
4. Чтение состояния: readContract, multicall, блоки ↗
5. Запись: simulate, estimateGas, nonce, ошибки ↗
6. События и логи на клиенте ↗
7. Индексатор событий Passage ↗
8. Аккаунты и подписи на клиенте ↗
9. Сети и мультичейн ↗
10. Практика — CLI-клиент Passage ↗

Деплой, окружения и верификация

8 уроков
1. Hardhat Ignition — декларативный деплой ↗
2. Модули Passage: Tokens, Passage, Governance ↗
3. Секреты и конфиг-переменные ↗
4. Деплой на Sepolia и Polygon Amoy ↗
5. Верификация исходников ↗
6. Детерминированные адреса и CREATE2 ↗
7. Пост-деплой: адреса, ABI и артефакты для клиентов ↗
8. Практика — развёртывание Passage в тестовую сеть ↗

Газ и оптимизация

9 уроков
1. Модель стоимости операций ↗
2. Раскладка storage и упаковка ↗
3. Кэширование storage в memory и локальные переменные ↗
4. Циклы, массивы и ограничения по газу ↗
5. Custom errors, события и immutable как экономия ↗
6. Bitmap и компактные структуры ↗
7. Оптимизатор компилятора и viaIR ↗
8. Транзиентное хранилище и новые опкоды ↗
9. Практика — оптимизация BoxOffice и TicketNFT ↗

Обновляемые контракты

8 уроков
1. Почему и когда контракты обновляют ↗
2. Прокси и delegatecall ↗
3. Раскладка хранилища и коллизии ↗
4. UUPS против Transparent ↗
5. Инициализаторы вместо конструкторов ↗
6. Деплой и обновление через Ignition и viem ↗
7. Управление обновлениями: роли, таймлок, проверки ↗
8. Практика — EventRegistry V1 → V2 ↗

Вторичный рынок, платежи и оракулы

8 уроков
1. Marketplace: дизайн вторичного рынка билетов ↗
2. Реализация Marketplace ↗
3. Роялти и комиссии на практике ↗
4. Оракулы цен ↗
5. Платежи в ETH: сдача, отказ получателя, учёт ↗
6. Front-running, MEV и защита пользователя ↗
7. Escrow и споры ↗
8. Практика — рынок в проекте ↗

Governance и Timelock

8 уроков
1. Зачем протоколу DAO ↗
2. TimelockController ↗
3. Governor на OpenZeppelin ↗
4. Голосование и делегирование ↗
5. Предложение изменения комиссии протокола ↗
6. Обновление контракта через DAO ↗
7. Мультиподпись и off-chain голосование обзорно ↗
8. Практика — DAO в проекте ↗

Базовый аудит и безопасность

8 уроков
1. Модель угроз протокола ↗
2. Классические уязвимости — часть 1 ↗
3. Классические уязвимости — часть 2 ↗
4. Статический анализ и линтеры ↗
5. Fuzz и invariant-тесты как инструмент аудита ↗
6. Ревью кода и аудит-чеклист ↗
7. Эксплуатационная безопасность ↗
8. Практика — аудит Passage ↗

Интеграция, эксплуатация и итоговый проект

8 уроков
1. Финальность, реорганизации и подтверждения ↗
2. Backend-интеграция: API поверх контрактов ↗
3. Индексаторы и данные для UI ↗
4. Особенности Polygon и L2 на OP Stack ↗
5. Account abstraction и смарт-аккаунты обзорно ↗
6. Обновление зависимостей и версий компилятора ↗
7. Документация протокола ↗
8. Итоговая сборка Passage ↗