Гайд
February 19

Деплой смарт контракта в берачейн  и не только, УГА БУГА!

Вновь сделал обложку с помощью https://www.spotlaight.com/ мега гем инструмент

Данный гайд является ~3тьей итерацией "как деплоить", где я показываю и рассказываю о разных штуках: linux, терминале, OpenZeppelin и etc.
Используя весь накопленный опыт и учтя прошлые ошибки, решил разобрать на примере berachain все этапы по деплою.
Подобное было в гайдах по Aleo и X1, найдете на моем канале

Немного о деплое...

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

Данный гайд получается скорее образовательным, команды для деплоя были заменены на логику: поиск инфы, вчитывание инфы и ее адаптация. Но это в большей степени касается метода деплоя через терминал, о нем речь и пойдет дальше. Всякие сайты для деплоя не требуют такой степени погружения и изучения новых навыков.

Возможно я разберу старую идею писать коммиты на гитхаб для дропа, идея деплоя трансформируется и мы уйдем в светлое будущее КЖДН

Методы деплоя: выбор между терминалом и сайтами

Терминал

Многих терминал отпугнет, тем более требует предварительных приготовлений. От покупки VPS до возможной установки Linux, а там еще команды какие-то вводить нужно. Но такой метод на практике получается:

  1. Более надежным, так как нужно просто повторять череду команд, а я добросовестно вписывал в свои гайды ВСЕ нужные команды, даже с учетом потенциальных ошибок.
  2. Более универсальным: с таким контрактом не возникнет проблем при верификации контракта. Что является приятным бонусом для нас.
  3. Это занимает не так много времени, существует утилита Foundry. Она очень часто встречается в документации проектов, у берачейн она единственная для деплоя ERC-20.

И это не так страшно, как вам может показаться! Смотрите какая красота

Разве оно может причинить вам вред и сломать вашу психику? Просто красиво оформленный терминал.
Он точно не кусается и вот прям точно деплоит. Ваш терминал правда будет страшный, ы

Thirdweb / Remix / gas.zip

Самый функциональный и удобный для деплоя - https://thirdweb.com/
Здесь огромный список тестнет/маиннет сетей, при необходимости вы можете добавить кастомную.

Но метод стал платным. Есть пробный месяц бесплатно!

https://remix.ethereum.org - очень старый сайт, он будет более сложным для новичка и может вызвать неожиданные ошибки при деплое, придется жанглировать файлами смарт контрактов и версиями компилятора.


Деплой через Remix может быть немного запутанным. Было решено разобрать именно его, так как он порой встречается и в официальных гайдах. Добавил немного скриншотов и ссылку на гайд по X1, там они более подробные

А еще есть разные сайты созданные для деплоя токенов в 1+ сети, они появились после Scroll SBT, но на их фоне сильно выделился gas.zip

Про него будет ниже в блоке про сам деплой.

Малого того, что Gas.zip сам по себе имба мост (+L0 мост) он еще предоставляет такой удобный метод деплоя токенов. Все нужное на одной странице! Работает только с имеющимся сетями на сайте, благо тут есть берачейн
И как я писал в своем гайде тут можно купить BERA

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


Показываю цепочку действий, как совершить деплой.

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

Взяли мы наш berachain и пошли искать его официальный сайт

https://www.berachain.com/

Таким не сложным действием мы находим официальный сайт, не забываем сверить разные источники: твиттер, посты в телеграм каналах и медиа. На всякий случай, вдруг берачейн только вчера родился.
На любом сайте где-то есть кнопки "Docs, build, Developer" - это нас продвигает к гайду на деплой.
А вот и нужная нам кнопка, нажимаем на нее и получаем список гайдов, мы на финишной прямой
Официальный сайт ведь не только для деплоя нужен. Мы можем перейти и в соседние кнопки, лучше узнать этот проект. Это сверх полезное действие, особенно когда вы ищите кран и проекты в новой сети, которую плохо знаете.

Foundry топ, но можете использовать и Hardhat.

Слева в списке просто смотрим глазами на "Contract, ERC-20, Deploy. Foundry"
Теперь мы видим перед собой оригинальный гайд со всеми командами, но тут начинаются тонкости..

Здесь важно очень внимательно читать и понимать контекст, нам требуется предварительно установить Foundry. Нажав на название прямо в гайде мы получим инструкцию по установке

https://book.getfoundry.sh/getting-started/installation

И тут опять какие-то команды в терминале указаны, что делать то?

Я упрощу вам задачу и покажу способы как вы можете поступить для работы с терминалом.

  1. В гайде указано, что Windows нужно установить Git Bash
    https://gitforwindows.org/
    Это позволит вам использовать такой же линукс терминал
  2. Мы покупаем VPS с Debian 12, попутно гуглим подключение к VPS из Windows.
  3. Мы просто используем MacOS (это такой же линукс, лол)
  4. Мы используем виртуальную машину с линукс, гайдов в интернете полно. https://www.virtualbox.org/ + Debian 12
  5. Мы устанавливаем к себе линукс, инструкций в интернете полно гайдов

И вот после выбора нужного метода, когда вы получили свой терминал и установили в него Foundry - идем дальше по гайду. В основном там много текста, который я не вижу смысл сюда переносить, моя цель вас научить. А не переписать чужой готовый гайд.

Я уточню некоторые моменты для вас

Все что через #написано - комментарий. На этом скриншоте лишь 1 команда

forge init

Все остальное писать не нужно

Здесь аналогично, это даже не команда, а просто пример структуры файлов, который нас мало интересует.

Дальше будет момент, когда нам нужно будет заменить приватный ключ, чтобы подписать транзакцию с нашего кошелька. Показываю, что мы делаем

Мы воспользуемся nano, если его вдруг нет в вашей системе:

apt install nano

Если вы именно установили линукс: sudo apt install nano

Затем мы открываем файл и меняем приватный ключ

nano ./.env

Переписываем нужную строчку и нажимаем : ctrl + O, ctrl + X

А для итогового деплоя мы просто используем команду

forge script script/BingBongToken.s.sol --rpc-url https://artio.rpc.berachain.com/ --broadcast;

Сайты для деплоя: мой любимый Thirdweb и другие

К сожалению стал платным, но для бесплатного триала можно привязать карту банка

Подключаем кошелек и выбираем тип смарт контракта нас интересует Token (ERC20), но можем пробовать любые.

Заполняем все поля и нажимаем Deploy Now он проведет нас по всем этапам: если делаем ERC721, то сайт покажет нам и минт НФТ и настройку минта этих НФТ.


Но платить деньги за деплой не хочется, тем более когда есть бесплатные аналоги. Может менее удобные, зато соблюдается одно из главных крипто правил НИКАКОГО СУКА ПЛАТНО! Но карту привязать бесплатно, для берачейна хватит.

Можем использовать комбинацию OpenZeppelin Wizard + Remix

Это очень старый метод, который со временем улучшался, они даже ИИ помощника завезли. Вы можете внимательно посмотреть деплой вот в этом гайде на медиум

Можете поставить галочки по своему усмотрению, дать красивое название и выставить какой-нить преминт, дальше нажмите кнопку Open in Remix

Compile contract, затем нажимаем на кнопочку Deploy & run transactions (обвел вам красным). А затем кнопку Deploy

Ставим сверху метамаск, чтобы сделать деплой в сети berachain (не забудьте поставить в кошельке)
После деплоя можно потыкать функции контракта, зависит от галочек в OpenZeppelin Wizard

Контракт готов, в тестнете существует ваш смарт контракт.


Gas.zip имба, которую я оставил на последок.

Малого того, что Gas.zip сам по себе имба мост (+L0 мост) он еще предоставляет такой удобный метод деплоя токенов ERC20. Все нужное на одной странице! Работает только с имеющимся сетями на сайте, благо тут есть берачейн
И как я писал в своем гайде тут можно купить BERA

https://token.gas.zip/

Заполняем все поля, ставим желанные для нас галочки и деплоим - все. Это самый удобный и быстрый метод. Этот метод отличный для берачейна, но не подойдет для множества других тестнетов и маиннетов. А еще нет возможности сделать НФТ.


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

Такой контракт имеет прозрачный и понятный код, который в последствии никто не заменит в тихую. В тестнетах многие не делают этот этап, так как в различных гайдах он не прописан + немного проблемный.

Сделать в терминале через foundry не составляет труда, одна команда и одно подставляемое значение - ваш приватный ключ.

А вот подтвердить смарт контракт сделанный иным способом может оказаться проблемным, я очень сильно настрадался во время деплоя x1 тестнета.
Берачейн тоже не предполагает верификации контрактов созданных не через терминал, точнее все методы описаны именно для него.

У других тестнетов может быть иначе, в обозревателе блоков находится форма верификации, вот пример - https://www.oklink.com/ru/x1-test/verify-contract-preliminary

Здесь мы заполняем данные и оставляем исходный код контракта, но подойдет только контракт созданный Foundry. И это подходит только для тестнета X1, показываю просто для примера.


Готово, теперь ты умеешь деплоить

Не забудь подписаться на мой телеграм канал https://t.me/deployladeploy