Источник Хабрахабр.ru, Москва
Заголовок Изучаем Ethereum через практику: моя история деплоя смарт-контракта в Sepolia
Дата 20250101

Этим цветом    обозначаются известные системе слова и выражения, принимавшие участие в анализе данного текста, а таким    - идентифицированные, то есть соотнесенные с каким-либо объектом онтологической базы

============= Обработанный текст:
Изучаем Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum через практику: моя история деплоя смарт-контракта в Sepolia

Изучаем Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum через практику: моя история деплоя смарт-контракта в Sepolia

Уровень сложности

Средний

Время на прочтение

10 мин

Количество просмотров

2

Solidity * JavaScript• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript *

Из песочницы

В этой статье я хочу поделиться своим личным опытом развертывания
смарт-контрактов двумя различными способами в тестовой сети Sepolia.

Заметьте, основная цель этого материала - продемонстрировать различные подходы
к развертыванию смарт-контрактов, а не детальное обучение созданию самих
смарт-контрактов. Если вы новичок в программировании• Информационные технологии » Информатика » Программирование

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование
и еще не знакомы с
JavaScript• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript или Solidity, не беспокойтесь. Все необходимые фрагменты кода для
наших смарт-контрактов будут автоматически сгенерированы во время процесса.

Выбор тестовой сети Sepolia обусловлен несколькими причинами. Во-первых, она
предоставляет бесплатную и безопасную среду для экспериментов. Во-вторых, эта
сеть является частью экосистемы Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum и повторяет ее функциональность, что
позволяет нам на практике применить теоретические знания. В-третьих, на
Sepolia доступна верификация контрактов через Etherscan, что значительно
упрощает отладку и проверку корректности работы наших смарт-контрактов.

В конце мы верифицируем наши смарт-контракты на Sepolia Etherscan, чтобы
убедиться в их правильности и надежности. Давайте начнем.

Начинаем с основ: Создание учетной записи• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum

Первым этапом на пути к созданию смарт-контракта станет регистрация учетной
записи• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum. Это необходимо для выполнения транзакций. Для управления
Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum-адресом в данном руководстве мы используем MetaMask, простой в
использовании кошелек, интегрированный в браузер.

Вы можете скачать расширение MetaMask для вашего браузера. После загрузки
следуйте инструкциям для создания нового аккаунта• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
.

Если вы создаете новую учетную запись• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
или используете уже существующую,
обязательно переключитесь на тестовую сеть Sepolia. Этот параметр можно найти
в верхнем левом углу интерфейса MetaMask. Использование сети Sepolia позволит
проводить все операции без использования реальных денег.

Если Sepolia не отображается в списке доступных сетей, убедитесь, что в
настройках MetaMask включена функция "Show test networks" (показать тестовые
сети).

Для нашего задания важно иметь ненулевой баланс в кошельке. Поскольку Sepolia
- это тестовая среда, мы можем получить тестовые токены ETH, которые будут
использоваться для оплаты развертывания смарт-контракта. Для этого пройдите по
ссылке , зарегистрируйте аккаунт• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер
Alchemy * (аккаунт• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер
понадобится и во втором
способе), введите адрес своего кошелька и нажмите кнопку "Send me ETH".

* Alchemy - бесплатная платформа для разработки блокчейн• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн

• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
-приложений• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

Мы готовы к созданию и развертке смарт-контрактов.

Способ первый: при помощи OpenZeppelin и Remix

Начнем наш путь к деплою смарт-контракта с OpenZeppelin's Contracts Wizard .

OpenZeppelin - платформа, которая предлагает инструменты для написания
безопасных смарт-контрактов

По ссылке вы увидите интерфейс с различными фильтрами и кодом, соответствующим
выбранным опциям.

Выбор протокола

В верхней части окна находятся кнопки выбора протоколов:

ERC20: стандарт для токенов;

ERC721• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » NFT - невзаимозаменяемый токен: стандарт для NFT• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » NFT - невзаимозаменяемый токен;

ERC1155• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » NFT - невзаимозаменяемый токен: мульти-токен;

Governor: Governance токен

Custom: кастомизированный код.

В этом примере выберем ERC20 .

Настройка токена

Задайте имя, обозначение и количество предварительно созданных токенов
(premint tokens). Выберите дополнительные особенности из списка, и код вашего
смарт-контракта будет сформирован автоматически.

Так выглядит мой код:

Открыть в Remix

Нажмите кнопку "Open in Remix" в правом верхнем углу. Откроется компилятор с
вашим кодом из OpenZeppelin.

Компиляция

На скриншоте выше мы видим версию компилятора и дополнительные настройки. В
advanced configurations - находятся дополнительные опции, одна из которых -
Enable optimisation. Оптимизация полезна, когда мы развертываем в среде
Mainnet, это поможет снизить газовые сборы (gas fees) на запуск
смарт-контракта. Далее компилируем контракт (нажимаем "Compile contract").

Объединение слоев кода (Flatten)

Перейдите в File explorer, найдите файл с контрактом. Щелкните правой кнопкой
мыши на файл и выберите "flatten":

у нас появился второй файл - имяконтракта_flattened.sol:

Деплой

Перейдите в раздел "Deploy & Run Transactions", выберите ваш
смарт-контракт (имя_контракта.sol) и в среде (environment) выберите "Injected
Provider - MetaMask". Подключите кошелек, убедитесь, что выбрана правильная
сеть (Sepolia), и нажмите "deploy". Подтвердите транзакцию в уведомлении
MetaMask.

Просмотр на Etherscan

После выполнения транзакции перейдите по ссылке "view on Etherscan" и
ознакомьтесь со всеми деталями транзакции.

На открывшейся странице EtherScan мы видим данные о развертывании нашего
контракта. В каком блоке транзакция• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн

• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
, адрес создателя (адрес нашего кошелька),
сколько мы заплатили за транзакцию, и другое. Далее нам надо верифицировать
смарт-контракт.

Верификация контракта

Нажимаем на название смарт-контракта, у меня Mango:

Переходим в раздел - "Contract", выбираем "Verify and Publish".

Адрес контракта заполняется автоматически. Тип компилятора - Solidity (Single
file). После надо выбрать версию, для этого возвращаемся в Remix:

Далее тип лицензии - MIT• Информационные технологии » Информатика » Программирование » Платформы программирования » Операционные системы » UNIX » X Window System » Лицензия MIT

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » UNIX » X Window System » Лицензия MIT

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » UNIX » X Window System » Лицензия MIT

• Государство » Законы и право » Правовая система России » Гражданское право РФ » Авторское право » Свободная лицензия » Лицензия MIT

• Государство » Законы и право » Право интеллектуальной собственности » Авторское право » Свободная лицензия » Лицензия MIT

• Объект организация » Организации по алфавиту » Организации на Ма » Массачусетский технологический институт » Лицензия MIT
(выбрана по умолчанию в OpenZeppelin).

Нажимаем - продолжить ("Continue"). В открывшемся окне вставляем код, который
копируем из файла имяконтракта_flatten.sol (файл из шага 5):

Пролистываем вниз страницы - выбираем "Verify and publish". При успешной
верификации получим сообщение:

Тестирование

Можете проверить работоспособность контракта, импортировав токены в MetaMask и
отправив их другому пользователю.

Заходим в MetaMask ->Tokens -> Import Tokens. Вставляем адрес смарт-контракта
-> импортируем токены. Теперь в вашем кошельке появились созданные токены. Вы
можете отправить их на другой адрес. Выбираем токен -> send -> пишем адрес ->
отправляем. После отправки на странице смарт-контракта на EtherScan мы видим
новую транзакцию (сколько, кому и когда было отправлено).

Поздравляю! Вы успешно задеплоили смарт-контракт, и теперь он полностью
функционирует в тестовой сети Sepolia. Этот подход является прекрасным
вариантом для тех, кто хочет быстро и эффективно создать смарт-контракт,
используя проверенные инструменты, такие как OpenZeppelin и Remix.

Второй способ: Alchemy API и Hardhat

1. Подключение к сети Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum и выполнение RPC-запросов

Существует множество методов для выполнения запросов к сети Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum. Для
упрощения процесса мы выбрали Alchemy, бесплатную платформу для разработки
блокчейн• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн

• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
-приложений• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
, которая предоставляет API для взаимодействия с Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum
без необходимости запуска собственных узлов. Эта платформа также предлагает
инструменты для мониторинга и аналитики, которые мы будем использовать для
понимания процессов, происходящих "под капотом" при развертывании нашего
смарт-контракта. Если у вас нет учетной записи• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
Alchemy, вы можете
зарегистрироваться бесплатно здесь .

Создание приложения• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
и получение API-ключа

После регистрации учетной записи• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
Alchemy, вы сможете сгенерировать API-ключ,
создав новое приложение• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
. Это позволит нам отправлять запросы к тестовой сети
Sepolia (или любой другой, например, Goerli).

Перейдите на страницу "Apps" в панели управления Alchemy, затем выберите
"Create new app".

Заполните необходимые поля, включая имя, описание приложения• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
, выберите
Network: Sepolia Testnet, Chain: Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum, и нажмите "Create app".

Инициализация проекта

Сначала нам нужно создать папку для нашего проекта. Откройте командную строку• Информационные технологии » Информатика » Программирование » Программное обеспечение » Интерфейс командной строки

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Интерфейс командной строки

• Информационные технологии » Информатика » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Интерфейс командной строки

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

и введите соответствующие команды:

mkdir figaro cd figaro

Затем, находясь в директории проекта, используйте команду npm init для
инициализации проекта:

npm init

Введите данные о вашем проекте. Информация, которую вы вводите, не критична
для текущего проекта:

Установка Hardhat

Hardhat — это среда разработки для компиляции, развертывания, тестирования и
отладки Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum-программного обеспечения. Она помогает разработчикам
создавать смарт-контракты и dApps локально перед их развертыванием. Для
установки Hardhat выполните соответствующую команду в корневой директории
вашего проекта:

npm install --save-dev hardhat

Создание проекта Hardhat

Для создания проекта Hardhat, запустите соответствующую команду в папке вашего
проекта:

npx hardhat

После этого должно появиться сообщение. Выберите опцию "Create an empty
hardhat.config.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript". Это создаст файл hardhat.config.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript, где мы укажем все
настройки для нашего проекта (на шаге 10).

Добавление папок проекта

Чтобы поддерживать порядок в нашем проекте, создадим две новые папки. В
корневой папке проекта в командной строке• Информационные технологии » Информатика » Программирование » Программное обеспечение » Интерфейс командной строки

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Интерфейс командной строки

• Информационные технологии » Информатика » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Интерфейс командной строки

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки
введите команду:

mkdir contracts mkdir scripts

Contracts/ - здесь будет храниться файл с кодом нашего смарт-контракта.

scripts/ - здесь будут храниться сценарии для развертывания и взаимодействия с
нашим контрактом.

Написание смарт-контракта

Мы будем использовать готовый код для нашего смарт-контракта. Создайте файл
MyContract.sol в папке Contracts и вставьте в него код:

// Указываем минимальную версию Solidity // Подробнее тут:
https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma
pragma solidity >=0.7.3; // Определяем контракт с именем `Figaro`. //Подробнее
тут: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html
contract Figaro { //Объявление события, которое будет использоваться для
логирования обновлений сообщений. //Событие принимает старую и новую строки в
качестве аргументов. event UpdatedMessages(string oldStr, string newStr); //
Определение переменной состояния "message". Это public переменная, // поэтому
Solidity автоматически создаст функцию "getter", которую можно вызывать для
чтения значения переменной. string public message; // Конструктор вызывается
при создании нового контракта. // В этом случае он устанавливает начальное
значение для переменной "message". //Подробнее тут:
https://docs.soliditylang.org/en/v0.5.10/contracts.html#constructors
constructor(string memory initMessage) { //Принимает строковый аргумент
`initMessage` и устанавливает значение в переменную хранения `message`
контракта). message = initMessage; } //Это функция, которая позволяет обновить
значение переменной "message". // Она сначала сохраняет старое значение
"message" во временной переменной, затем обновляет "message" // новым
значением, и, наконец, инициирует событие "UpdatedMessages" с обоими
значениями. function update(string memory newMessage) public { string memory
oldMsg = message; message = newMessage; emit UpdatedMessages(oldMsg,
newMessage); } }

Соединяем Metamask & Alchemy с нашим проектом

Мы успешно создали Metamask кошелек и учетную запись• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
Alchemy, а также написали
наш смарт-контракт. Теперь настало время объединить все эти элементы.

Каждая транзакция, отправляемая из вашего виртуального кошелька, требует
подписи, осуществляемой с использованием вашего уникального закрытого ключа• Информационные технологии » Информатика » Защита информации » Криптография » Симметричные криптосистемы.
Для того чтобы предоставить нашей программе эту возможность, мы можем
безопасно хранить наш закрытый ключ• Информационные технологии » Информатика » Защита информации » Криптография » Симметричные криптосистемы и ключ API Alchemy локально на своем
устройстве в папке проекта.

Для начала, установим пакет dotenv в директорию нашего проекта:

npm install dotenv --save

Теперь создайте файл .env в корневом каталоге проекта и добавьте в него ваш
закрытый ключ• Информационные технологии » Информатика » Защита информации » Криптография » Симметричные криптосистемы Metamask и URL-адрес HTTP Alchemy API.

Пожалуйста, не создавайте .env вручную через текстовый документ, иначе его
название будет выглядеть как: .env.txt, что не будет корректно распознано
системой.

API_URL можно найти здесь:

Инструкция по экспорту закрытого ключа• Информационные технологии » Информатика » Защита информации » Криптография » Симметричные криптосистемы.

Ваш .env файл должен выглядеть примерно так:

Устанавливаем Ether.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript

npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0" Hidden text

Ether.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript - это библиотека JavaScript• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript » Библиотека JavaScript, которую разработчики используют для
взаимодействия с блокчейном• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн

• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum. Она предоставляет удобный интерфейс и
инструменты для выполнения таких задач, как подписание и отправка транзакций,
взаимодействие со смарт-контрактами, генерация и управление кошельками и
ключами, а также обработка данных и конвертация между различными форматами,
используемыми в Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum.

Обновляем hardhat.config.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript

Мы добавили несколько зависимостей и плагинов, и теперь нам нужно обновить
файл hardhat.config.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript, чтобы наш проект знал о каждом из них. Откройте файл в
любом редакторе кода• Информационные технологии » Информатика » Программирование » Программное обеспечение » Прикладное программное обеспечение » Текстовые редакторы » Текстовый редактор

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Прикладное программное обеспечение » Текстовые редакторы » Текстовый редактор

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Прикладное программное обеспечение » Текстовые редакторы » Текстовый редактор
(например, VS Code).

Обновляем hardhat.config.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript, чтобы он выглядел следующим образом:

/** * @type import('hardhat/config').HardhatUserConfig */
require('dotenv').config(); require("@nomiclabs/hardhat-ethers"); const {
API_URL, PRIVATE_KEY } = process.env; module.exports = { solidity: "0.7.3",
defaultNetwork: "sepolia", networks: { hardhat: {}, sepolia: { url: API_URL,
accounts: [`0x${PRIVATE_KEY}`] } }, }

Компиляция смарт-контракта

Чтобы убедиться, что все работает корректно на данный момент, давайте
скомпилируем наш контракт. Задача компиляции — одна из встроенных задач
Hardhat.

npx hardhat compile

Возможно, вы получите предупреждение о том, что идентификатор лицензии SPDX не
указан в исходном файле. Это обычное предупреждение и оно не влияет на процесс
развертывания.

Warning: SPDX license identifier not provided in source file. Before
publishing, consider adding a comment containing "SPDX-License-Identifier:
<SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED"
for non-open-source• Информационные технологии » Информатика » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
code.

Написание скрипта для развертывания смарт-контракта

Перейдите в папку scripts/ и создайте новый файл с именем deploy.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript, добавив в
него следующее содержимое:

async function main() { const Figaro = await
ethers.getContractFactory("Figaro"); //Здесь мы развертываем наш контракт.
"Figaro!" - это аргумент, передаваемый в конструктор контракта. //
Возвращаемое значение - это объект контракта, который включает в себя
множество полезных свойств и методов для взаимодействия с контрактом. const
figaro = await Figaro.deploy("Figaro!"); //Выводим на консоль адрес, по
которому был развернут наш контракт. console.log("Contract deployed to
address:", figaro.address); } main() .then(() => process.exit(0)) // Если все
прошло успешно, завершаем процесс с кодом 0 .catch(error => { // В случае
ошибки выводим информацию об ошибке и завершаем процесс с кодом 1
console.error(error); process.exit(1); });

В руководстве по контрактам Hardhat подробно объясняется, что делает каждая из
этих строк кода.

Развертывание смарт-контракта

Наконец, мы готовы развернуть наш смарт-контракт! Перейдите в командную строку• Информационные технологии » Информатика » Программирование » Программное обеспечение » Интерфейс командной строки

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Интерфейс командной строки

• Информационные технологии » Информатика » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Интерфейс командной строки

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Интерфейс пользователя » Текстовый интерфейс » Интерфейс командной строки

и выполните:

npx hardhat run scripts/deploy.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript --network sepolia

Вы увидите сообщение, которое говорит вам, что ваш контракт был успешно
развернут.

Contract deployed to address: 0x66013b6c4926Cc59B0405E7a275Db497916*****

Сохраните адрес контракта для дальнейшего использования. Следующим шагом
перейдите на Sepolia Scan , введите адрес контракта в поисковой строке и
проверьте, что контракт успешно развернут.

Поздравляю! Вы только что развернули смарт-контракт в сети Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum. Hidden
text

Просмотр запросов RPC к Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum

Чтобы более детально разобраться в процессе, вы можете перейти в приложение• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
,
созданное на шаге 2 в Alchemy dashboard , и просмотреть историю всех ваших
запросов. Заходим в приложение• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись

• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » Учётная запись
, пролистываем страничку вниз и видим историю
всех наших запросов.

Верификация и cмарт-контракта

Теперь, когда контракт развернут, мы можем приступить к его верификации, по
аналогии с тем, что мы делали в первом способе.

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

Перейдите в раздел Contract -> Verify and Publish. Версию компилятора можно
взять из файла hardhat.config.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript.

В лицензии выберите - None.

В поле для кода вставьте код из файла MyContract.sol и нажмите кнопку
"Verify".

После успешной верификации вы увидите соответствующее сообщение:

Поздравляю, ваш смарт-контракт верифицирован!

Заключение

В ходе нашей работы, мы подробно рассмотрели два различных подхода к
развертыванию смарт-контрактов на тестовой сети Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum - Sepolia.

Первый метод• Информационные технологии » Информатика » Программирование » Парадигмы программирования » Объектно-ориентированное программирование » Метод (программирование)

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Парадигмы программирования » Объектно-ориентированное программирование » Метод (программирование)

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Парадигмы программирования » Объектно-ориентированное программирование » Метод (программирование)
- это использование Remix IDE, онлайн-инструмента, который
предлагает удобный и наглядный интерфейс для разработки и развертывания
смарт-контрактов. Этот подход идеален для начинающих блокчейн• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн

• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
-разработчиков
благодаря его простоте и удобству.

Второй метод• Информационные технологии » Информатика » Программирование » Парадигмы программирования » Объектно-ориентированное программирование » Метод (программирование)

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Парадигмы программирования » Объектно-ориентированное программирование » Метод (программирование)

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Парадигмы программирования » Объектно-ориентированное программирование » Метод (программирование)
включает использование фреймворка• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Фреймворк

• Информационные технологии » Информатика » Программирование » Фреймворк

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Фреймворк
Hardhat вместе с библиотекой
ethers.js• Телекоммуникации и связь » Компьютерная сеть » Интернет » Веб-программирование » JavaScript для локальной разработки и деплоя контрактов. Этот подход предлагает
больше гибкости и контроля, позволяя использовать полноценные среды разработки
и воспользоваться всеми преимуществами современных инструментов
программирования• Информационные технологии » Информатика » Программирование

• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование

• Высокие технологии » Информационные технологии и телекоммуникации » Программирование
.

Оба этих способа помогают приобрести важные навыки и опыт, который максимально
приближен к деплою смарт-контрактов на главной сети Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum (mainnet).
Изучение обоих методов обеспечит вам глубокое понимание процесса развертывания
смарт-контрактов и позволит выбирать подходящий инструмент в зависимости от
ваших задач и предпочтений.

============= Итог: 7,1051 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Вычислительная техника #Компьютер#Учётная запись 6,4551 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Базы данных #Публичная база транзакций#Блокчейн#Ethereum 3,5268 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Программирование #Парадигмы программирования#Объектно-ориентированное программирование #Метод (программирование) 3,0071 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Программирование#Фреймворк 2,4410 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Программирование #Программное обеспечение#Интерфейс командной строки 1,9705 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Программирование #Программное обеспечение#Свободное программное обеспечение #Открытое программное обеспечение 1,9530 ; Информационные технологии#Информатика#Защита информации#Криптография #Симметричные криптосистемы 1,6728 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Программирование #Программное обеспечение#Прикладное программное обеспечение #Текстовые редакторы#Текстовый редактор 1,4575 ; Информационные технологии#Информационно-коммуникационные технологии #Информационные технологии и телекоммуникации#Программирование #Платформы программирования#Операционные системы#UNIX#X Window System #Лицензия MIT 7,0980 ; Экономика#Финансы#Платежные средства#Платежные системы интернета #Криптовалюта#Ethereum#Блокчейн 5,3980 ; Экономика#Финансы#Платежные средства#Платежные системы интернета #Криптовалюта#NFT - невзаимозаменяемый токен 1,9990 ; Телекоммуникации и связь#Компьютерная сеть#Интернет#Веб-программирование #JavaScript#Библиотека JavaScript


Copyright © 2007-2025 ООО «RelTeam»