Изучаем
Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum через
практику:
моя история деплоя
смарт-
контракта в Sepolia
Изучаем Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum через практику: моя история деплоя смарт-контракта в Sepolia
2025-01-01 в 14:06 , admin , рубрики: blockchain• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн , Ethereum• Экономика » Финансы » Платежные средства » Платежные системы интернета » Криптовалюта » Ethereum , smart-contract ,
solidity , блокчейн• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн
• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » Публичная база транзакций » Блокчейн , смарт-контракт
В этой статье я хочу поделиться своим личным опытом развертывания
смарт-контрактов двумя различными способами в тестовой сети 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).
Изучение обоих методов обеспечит вам глубокое понимание процесса развертывания
смарт-контрактов и позволит выбирать подходящий инструмент в зависимости от
ваших задач и предпочтений.
Автор: yu_lilia
Источник