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
- Вводим: cd название_проекта
- Вводим: vim src/contract/hello_starknet.cairo
- Жмем “i” в eng раскладке, затем в 'Amount cannot be 0’ меняем 0 на любое трехзначное число, после чего жмем Esc и вводим :wq Если число уже было использовано до этого, вы получите такую ошибку:
Прелесть тут в том, что можно деплоить только уникальный контракт, но не все его элементы подходят под изменение. Тут можно поиграть с другими контрактами, но тогда придется менять значения еще и в файлах protostar.toml и contract.cairo
- Вводим: export PROTOSTAR_ACCOUNT_PRIVATE_KEY=ВАШ_ПРИВАТНИК *приватник от Аргента или Браавоса DYOR!
- Заменяем ВАШ_АДРЕС на ваш адрес (внезапно), затем вводим всю команду целиком:
protostar declare hello_starknet \ --network mainnet \ --account-address ВАШ_АДРЕС \ --max-fee auto
Получили успешный вывод
Для следующей команды нам нужен будет Class hash, который вы получили
- Ждем минуту пока контракт апрувнется в L2 (можно чекнуть в скане), затем всавляем Class hash и адрес вашего аккаунта.
protostar deploy \ ВАШ_class_hash \ --network mainnet \ --account-address ВАШ_АДРЕС \ --max-fee auto
- Готово, получаем примерно такой же вывод, только с адресом вашего задеплоенного контракта и хешем транзакции. Через минуту-другую контракт отобразится в эксплорере.
Взаимодействие с контрактом
- Переходим в эксплорер по адресу вашего контракта (первая ссылка в выводе StarkScan…) ****
- Открываем вкладку Read/Write Contract
- Нажимаем Write и подключаем кошелек
- Раскрываем 0. increase_balance(amount) и вписываем любую цифру/число в строку ниже. Жмем Write ниже
- Переключаемся на Read, раскрываем 1. ****get_balance(). Жмем Query и платим ±0.3$ комиссии.
- Видим невероятное увеличение баланса. Да, нужно было перед этим нажать Query и увидеть, что там 0, но уже поздно.
- Ладно не поздно, можно еще раз повторить всё и прибавить любое число
Слито из: https://t.me/+dPkfQMRMMPFmZTRk