September 4, 2023

Разворачиваем смарт-контракт в Starknet часть 2

Канал Blockside 04.09.23 г.

Для чего мы с вами разворачиваем смарт-контракт в Starknet можете посмотреть в первой части от Жени на Youtube. Сейчас по данной схеме развернуть смарт-контракт не получится, так как Starknet обновился и нужно устанавливать дополнительные модули

Вы можете сделать все действия на арендованном сервере на Ubuntu 20.04 или пойти по простому пути и сделать все через кошелек Argent. В инструкции напишу оба варианта.

1 ВАРИАНТ

Для разворачивания смарт-контракта понадобится сервер с минимальными техническими характеристиками (например: Процессор: 1 core Память: 1 ГБ Хранилище: 30 ГБ Трафик: 32 ТБ). Такой сервер можно арендовать на Vdsina, Hetzner или Contabo.

Приступаем к разворачиванию смарт-контракта

Обновляем систему

sudo apt-get install curl

sudo apt update

Устанавливаем Protostar

curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash

source /root/.bashrc

Создаем папку проекта в которой будем создавать смарт-контракт

protostar init

Пишем любое название, например stark101. Переходим в эту папку

cd stark101

Устанавливаем две версии Scarb

curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh

curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh -s -- -v nightly

source /root/.bashrc

Проверяем версию Scarb

scarb --version

Далее создаем в нашей папке смарт-контракт командой

protostar build

У вас появится следующее сообщение

Нам нужен class hash for contract "hello_starknet" 0x3c57c8652ad760024c571ca2c85c024b0b37ee30e17ca43d40295cb912bee03

Для этого смарт-контракта он у всех будет одинаковый

Создаем файл со своим приватным ключем

echo <вставляем private key от кошелька> > .env

Например: echo 1780577367856757586576879655423757134249303378563877454818592 > .env

Далее развертываем смарт-контракт.
Для этого вписываем в команду Class Hash (который мы взяли из своей транзакции, он будет одинаковый в этой версии) и снова указываем адрес нашего кошелька.

protostar deploy <class hash> --account-address <адрес вашего кошелька> --max-fee auto --private-key-path ./.env --network mainnet

Например: protostar deploy 0x3c57c8652ad760024c571ca2c85c024b0b37ee30e17ca43d40295cb912bee03 — account-address 0x0404CF507CFd1291baD33e86FB71b88f82c7002229963310955FD4625ECb8C68 — max-fee auto — private-key-path ./.env — network mainnet

Если все сделали правильно, то появится следующее сообщение

Проверить ход создания контракта в Starkscan можно по третьей ссылке

Также можно сделать взаимодействие с вашим смарт-контрактом через аргент. Это мы сделаем во втором облегченном варианте

2 ВАРИАНТ

Во втором варианте мы будем использовать кошелек Argent. Для этого берем Class Hash из первого варианта 0x3c57c8652ad760024c571ca2c85c024b0b37ee30e17ca43d40295cb912bee03 и вставляем его в кошелек Argent

Переходим в настройки кошелька нажав шестеренку в правом верхнем углу. Выбираем пункт Developer Settings, затем Smart Contract Development, далее Deploy Smart Contract. Появится следующее поле:

В поле Contract classhash пишем 0x3c57c8652ad760024c571ca2c85c024b0b37ee30e17ca43d40295cb912bee03

Network выбираем mainnet, Account свой кошелек и затем нажимаем кнопку Deploy

Стоимость транзакции за деплой составит от 6 до 10 центов

Если все сделали правильно, то появится надпись

В истории транзакции Argent можно проверить выполнение транзакции

Нажимаем эту транзакцию и далее Transaction ID

Для взаимодействия с контрактом в Starkscan нам нужен его адрес

Копируем его и отправляем на него немного эфира c баланса вашего кошелька, хватит 0.0001 ETH. Ждем пока эфир не появится на балансе контракта, для этого заходим на сам контракт и обновляем страницу через 2-3 минуты после проведения транзакции.

Переходим во вкладку в контракте Read/Write

Нажимаем Write и подключаемся Argent через Connect to Wallet

Разворачиваем поле increase_balance и вписываем любое цифровое значение от 1 до 100 или 0x1 и нажимаем Write.

После этого подписываем транзакцию в Argent. За каждую подпись стоимость транзакции составит 0,10-0,15$. Таким путем можно набить любое количество транзакций в Starknet, но слишком много не делайте и чередуйте с другими активностями.

Удачи!

Канал Blockside 04.09.23 г.