Перейти к основному содержанию

Предварительные требования

Подготовка контракта

Следующий контракт-пример используется во всём руководстве:

Развёртывание с Foundry

Foundry — это быстрый набор инструментов для разработки на Ethereum, написанный на Rust.
  1. Установите Foundry:
    Возможно, вам потребуется выполнить source файла .bashrc или .zshrc
  2. Настройте новый проект Foundry:
  3. Обновите foundry.toml с настройками Plasma testnet:
  4. Создайте файл .env в корне проекта:
  5. Загрузите переменные окружения:
  6. Сохраните код контракта как src/SimpleStorage.sol, затем разверните:
    Foundry выведет хеш транзакции развёртывания и адрес контракта:
  7. Протестируйте развёрнутый контракт, используя инструмент cast от Foundry. Сначала прочитайте сохранённые данные:
  8. Затем обновите данные и снова прочитайте их:
    Вывод должен быть примерно таким:

Развёртывание с Hardhat

Hardhat — это полнофункциональный фреймворк разработки с богатой поддержкой плагинов.
  1. Убедитесь, что у вас есть следующее:
  • Node.js 20+ (требуется для совместимости с современным Hardhat)
  • Знакомство с разработкой на Ethereum
  • Кошелёк с testnet-токенами (см. подробности testnet-цепочки)
Node.js 18 и ниже больше не поддерживаются Hardhat и могут вызывать проблемы совместимости ES-модулей.
  1. Проверьте версию Node.js:
    Если вы используете Node.js 18 или ниже, обновитесь до Node.js 20+:
  2. Инициализируйте новый проект Hardhat:
    Если вы столкнётесь с проблемами совместимости, ознакомьтесь с документацией Hardhat для последних поддерживаемых версий.
    Выберите Create a JavaScript project при появлении запроса.
  3. Обновите hardhat.config.js:
  4. Создайте файл .env в корне проекта:
  5. Создайте каталог scripts и скрипт развёртывания:
  6. Создайте scripts/deploy.js:
  7. Сохраните код контракта как contracts/SimpleStorage.sol, затем разверните:
  8. Готово!

Развёртывание с Ethers.js

Ethers.js предоставляет минимальный программный поток развёртывания.
  1. Создайте новый проект:
  2. Создайте файл .env в корне проекта:
  3. Создайте compile.js для компиляции вашего Solidity-контракта:
  4. Сохраните контракт как SimpleStorage.sol, затем скомпилируйте:
    Должен получиться вывод:
  5. Создайте deploy.js:
  6. Запустите скрипт развёртывания:
    Вывод должен быть примерно таким:

Проверка развёртывания

После развёртывания любым из приведённых способов проверьте развёртывание контракта.

Устранение неполадок

Проблемы совместимости с ES-модулями

Если вы видите ошибки вроде Error [ERR_REQUIRE_ESM]: require() of ES Module, это обычно означает:
  1. Слишком старая версия Node.js: обновитесь до Node.js 20+, как указано в предварительных требованиях
  2. Несоответствие версий зависимостей: если обновить Node.js невозможно, можно понизить проблемную зависимость:

Предупреждения о версии Node.js

Если вы видите предупреждения о неподдерживаемых версиях Node.js:
Обновитесь до Node.js 20+, следуя шагам в разделе предварительных требований.

Недостаточно средств

Убедитесь, что в кошельке достаточно testnet-токенов. Посетите testnet faucet.

Неправильная конфигурация сети

Проверьте, что конфигурация сети соответствует подробностям testnet-цепочки.

Сбой оценки газа

Установите явные лимиты газа в конфигурации развёртывания: