July 26, 2023

Deploy | StarkNet

Копируем и вставляем в терминал команду ниже. Когда всё прогрузится, вписываем название проекта project directory name:

sudo apt-get update && sudo apt-get install -y && apt install curl -y && curl -sL https://deb.nodesource.com/setup_16.x -o /tmp/nodesource_setup.sh && sudo bash /tmp/nodesource_setup.sh && sudo apt-get install -y nodejs && npm install -g npm@9.8.1 && curl -L https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh | bash && source /root/.bashrc && curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh && source /root/.bashrc && protostar init
  1. Вводим: cd название_проекта
  2. Вводим: vim src/contract/hello_starknet.cairo
  3. Жмем “i” в eng раскладке, затем в 'Amount cannot be 0’ меняем 0 на любое трехзначное число, после чего жмем Esc и вводим :wq Если число уже было использовано до этого, вы получите такую ошибку:

Прелесть тут в том, что можно деплоить только уникальный контракт, но не все его элементы подходят под изменение. Тут можно поиграть с другими контрактами, но тогда придется менять значения еще и в файлах protostar.toml и contract.cairo

  1. Вводим: export PROTOSTAR_ACCOUNT_PRIVATE_KEY=ВАШ_ПРИВАТНИК *приватник от Аргента или Браавоса DYOR!
  2. Заменяем ВАШ_АДРЕС на ваш адрес (внезапно), затем вводим всю команду целиком:
protostar declare hello_starknet \
  --network mainnet \
  --account-address ВАШ_АДРЕС \
  --max-fee auto

Комиссия ±0,0001 ЕТН

 Получили успешный вывод
Для следующей команды нам нужен будет Class hash, который вы получили
  1. Ждем минуту пока контракт апрувнется в L2 (можно чекнуть в скане), затем всавляем Class hash и адрес вашего аккаунта.

protostar deploy \
  ВАШ_class_hash \
  --network mainnet \
  --account-address ВАШ_АДРЕС \
  --max-fee auto
  1. Готово, получаем примерно такой же вывод, только с адресом вашего задеплоенного контракта и хешем транзакции. Через минуту-другую контракт отобразится в эксплорере.

Взаимодействие с контрактом

  1. Переходим в эксплорер по адресу вашего контракта (первая ссылка в выводе StarkScan…) ****
  2. Открываем вкладку Read/Write Contract
  3. Нажимаем Write и подключаем кошелек
  4. Раскрываем 0. increase_balance(amount) и вписываем любую цифру/число в строку ниже. Жмем Write ниже
  5. Переключаемся на Read, раскрываем 1. ****get_balance(). Жмем Query и платим ±0.3$ комиссии.
  6. Видим невероятное увеличение баланса. Да, нужно было перед этим нажать Query и увидеть, что там 0, но уже поздно.
  7. Ладно не поздно, можно еще раз повторить всё и прибавить любое число

Слито из: https://t.me/+dPkfQMRMMPFmZTRk