Пишем смарт-контракты с помощью ChatGPT (в картинках)
Современные технологии (не те, что у нас в крипте, а настоящие) позволяет делать вещи, которые были невозможны ещё несколько лет назад — например, писать код без каких-либо навыков программирования. У этого есть безусловные минусы — вряд ли вы захотите доверять свои средства программе, написанной нейросетью на данных двухлетней давности. Однако для кого-то это может стать хорошей точкой входа в разработку, особенно если этот кто-то предпочитает учиться сразу на практике.
В общем, если доверяете ресёрчу ChatGPT, то почему бы не использовать его и для более творческих задач. Вот подходящая даже для новичков инструкция, как это сделать.
Попробуем развернуть простой смарт-контракт, который управляет вайтлистами со следующими возможностями:
- Создатель контракта может добавлять и удалять адреса из списка.
- Добавленные адреса могут снять весь 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. Если это попробует сделать адрес, не входящий в вайтлист, транзакция не пройдёт. Значит, и со второй задачей контракт справляется успешно!
Поздравляем, теперь вы билдер!