June 4, 2023

Пишем смарт-контракты с помощью ChatGPT (в картинках)

Современные технологии (не те, что у нас в крипте, а настоящие) позволяет делать вещи, которые были невозможны ещё несколько лет назад — например, писать код без каких-либо навыков программирования. У этого есть безусловные минусы — вряд ли вы захотите доверять свои средства программе, написанной нейросетью на данных двухлетней давности. Однако для кого-то это может стать хорошей точкой входа в разработку, особенно если этот кто-то предпочитает учиться сразу на практике.

В общем, если доверяете ресёрчу ChatGPT, то почему бы не использовать его и для более творческих задач. Вот подходящая даже для новичков инструкция, как это сделать.

Попробуем развернуть простой смарт-контракт, который управляет вайтлистами со следующими возможностями:

  1. Создатель контракта может добавлять и удалять адреса из списка.
  2. Добавленные адреса могут снять весь ETH с баланса контракта.

1. Попросите ChatGPT написать код смарт-контракта

Это можно делать естественным языком: «Напиши смарт-контракт Solidity, который позволяет определенным адресам, внесенным создателем в вайтлист, выводить баланс контракта». Обратите внимание, что на запросы на русском и английском ChatGPT выдаёт несколько разные результаты, поэтому с формулировками можно экспериментировать.

Чтобы вам было понятнее содержание контракта, попросите ChatGPT объяснить его функции. Главные в этом случае — addToWhitelist для добавления адресов и withdrawBalance для вывода средств.

2. Скомпилируйте смарт-контракт

Для этого удобно использовать Remix — онлайн-среду разработки (IDE) для создания, развертывания и тестирования смарт-контрактов. Создайте файл в папке контракта, вставьте код в файл, нажмите на логотип Solidity compiler в боковой панели, выберите нужную версию языка и нажмите на Compile.

3. Задеплойте контракт

Проще говоря — разверните его в блокчейне. Для этого в том же Remix нужно нажать на логотип Deploy в боковой панели, выбрать Injected provider в поле Environment, нажать на кнопку Deploy и подтвердить транзакцию в Metamask.

Деплоить дешевле всего будет в тестовой сети или одном из L2 (Arbitrum/Optimism), если вы хотите более приближенного к реальности опыта. Для этого перед деплоем Metamask должен быть подключен к соответствующей сети.

4. Протестируйте контракт

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

Попробуем добавим адрес "0x5C990Fa6d1065C8e19985823838Efd44041a4Fa5" (или любой другой по вашему выбору) в вайтлист. Введите адрес в поле addToWhitelist, нажмите на него и подтвердите транзакцию в Metamask.

Если вы попытаетесь добавить адрес в вайтлист с адреса, отличной от того, который использовался при деплое контракта, это не сработает. Значит, эта часть выполнена правильно!

Теперь проверим вывод — отправим на адрес 0,001 ETH. Найти адрес контракта можно в блокчейн-эксплорере в транзакции Contract creation. Теперь адреса из вайтлиста могут извлечь баланс контракта функцией withdrawBalance. Если это попробует сделать адрес, не входящий в вайтлист, транзакция не пройдёт. Значит, и со второй задачей контракт справляется успешно!

Поздравляем, теперь вы билдер!


Gagarin Crypto | Канал | Чат | Twitter