February 1, 2023

Sui testnet deploy

Арендовать сервер под деплой можете тут - https://www.anrdoezrs.net/click-100739982-13796472

Гайд оптимизирован под любые сервера. Установка занимает несколько минут.

Для деплоя подойдет любой сервер c Ubuntu 20.04. Если у вас на сервере установлены ноды, но вы плохо разбираетесь в командной строке, то лучше делать на новом. Вводим команды по одной:

sudo apt-get update && sudo apt-get install -y --no-install-recommends
sudo apt install tzdata ca-certificates libclang-dev openssl protobuf-compiler -y
apt install curl
bash <(curl -s https://raw.githubusercontent.com/DOUBLE-TOP/tools/main/rust.sh)
rustup install stable
rustup update stable
rustup default stable
mkdir $HOME/sui-deploy
wget -qO $HOME/sui-deploy/sui https://doubletop-bin.ams3.digitaloceanspaces.com/sui/cli-v0.22.0/sui
sudo chmod +x $HOME/sui-deploy/sui 
sudo mv $HOME/sui-deploy/sui /usr/bin/

Проверяем что все установилось:

which sui

|/usr/bin/sui

sui --version

|sui 0.22.0-e17e80c5c

Отлично, полдела уже сделано (на самом деле нет, просто подбадриваю). Идем дальше:

sui genesis --force
rm -rf .sui/sui_config/client.yaml
sui client
  1. вводим: Y
  2. вводим: https://fullnode.testnet.sui.io:443
  3. вводим: testnet
  4. вводим: 0

Теперь вводим:

sui keytool import "senior gloom payment profit favorite bleak tower habit pretty series blind weapon" ed25519

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

Дальше:

sui client switch --address 0xb27bbe7f72d2da1802bd1360d84c305343607e43

Тут заменяете адрес на ваш.

Проверяем всё ли верно:

cat .sui/sui_config/client.yaml

Переходим к контрактам (наконец-то):

Создаем директорию:

sui move new my_first_package

Создаем контракт:

wget -q -O $HOME/my_first_package/sources/my_module.move https://raw.githubusercontent.com/MystenLabs/sui/main/sui_programmability/examples/move_tutorial/sources/my_module.move

Настало время для деплоя:

cd my_first_package
sui client publish --gas-budget 1000

Не нужно пугаться, если выдаст такую ошибку (если не такую то нужно):

Это стандартный перегруз сети, пробуйте еще, пока не получится.

В итоге получаете такой результат:

Поздравляю, контракт создан. Можно ввести данные в эксплорере или перейти в него прямо через активности кошеля.

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

Воспользуемся простой функцией создания меча «Sword».

Для этого смотрим на данные ниже:

Теперь, для начала, проверяем текущее количество Sword:

sui client object АЙДИ_КОНТРАКТА

Видим внизу: swords_created: 0

💡 Если не видим, то вместо АЙДИ_КОНТРАКТА вставляем АЙДИ_ОБЪЕКТА. Точно так же и дальше, если будет ошибка, то меняем их местами

Вводим следующую команду, заменив АЙДИ_КОНТРАКТА, АЙДИ_ОБЪЕКТА, АДРЕС_КОШЕЛЬКА на свои:

sui client call --package АЙДИ_ОБЪЕКТА --module "my_module" --function "sword_create" --args АЙДИ_КОНТРАКТА 5 5 АДРЕС_КОШЕЛЬКА --gas-budget 1000

Опять проверяем:

sui client object АЙДИ_КОНТРАКТА

Видим внизу: swords_created: 1

Можно добавлять +1 пока не закончатся тестовые суинки.

Как мультить

Вводим cd и возвращаемся к пункту с вводом сид-фразы:

sui keytool import "сид фраза" ed25519
sui client switch --address "кошелек"
cat .sui/sui_config/client.yaml

И сразу:

cd my_first_package
sui client publish --gas-budget 1000

Cлито из @cryptobase_sales https://t.me/+dPkfQMRMMPFmZTRk