Sui Devnet. Устанавливаем кошелек.

Sr20de
4 min readMay 9, 2022

--

(Обновлено 18 мая 2022)

Sui запустила Devnet. Пока что участвовать в нем можно только кошельком, но в будущем можно будет создать ноду и стать валидатором. Когда это будет, пока неизвестно.

В своем блоге SUI написала, что участие в девнете на той стадии, когда будет доступна нода, является ОБЯЗАТЕЛЬНЫМ для попадания в будущий тестнет!

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

Сейчас сеть работает с 4 валидаторами под управлением Mysten Labs. Кошелек будет работать через них.

Ссылки:
Дискорд: https://discord.gg/4wH36retfA
Блокэксплорер: https://explorer.devnet.sui.io/
Анонс Devnet: https://medium.com/mysten-labs/sui-devnet-public-release-a2be304ff36b

Обновление

Выполнять обновление только если уже устанавливали предыдущие версии SUI.

  1. Удаляем папку с кошельком .sui (папка с точкой!): rm -rf .sui
  2. Устанавливаем cmake: sudo apt install cmake
  3. Теперь устанавливаем новую SUI:
    cargo install --locked --git https://github.com/MystenLabs/sui.git --branch “devnet” sui

Установка с нуля

Устанавливаем нужные пакеты:

sudo apt update && sudo apt upgrade -ysudo apt install make clang pkg-config libssl-dev cmake

Устанавливаем Rust:

curl https://sh.rustup.rs -sSf | sh

Проверяем версию Cargo:

cargo -V

Должна быть версия 1.60.0 или выше

Устанавливаем SUI:

cargo install --locked --git https://github.com/MystenLabs/sui.git --branch "devnet" sui

Это будет длительный процесс. У меня на конфигурации 4/8 заняло примерно 30 минут.

После окончания установки введите команду which wallet. Если установка прошла успешно, терминал выдаст путь наподобие этого:

Сами файлы кошелька wallet.conf и wallet.key находятся в папке /.sui/sui_config

Узнать адрес своего кошелька можно командой

wallet active-address

После этого запросите тестовые монеты в дискорде в канале #devnet-faucet. Присланные монеты будут использоваться для оплаты комиссий за транзакции.

Можете создать себе еще один адрес с помощью команды wallet new-address (он нам дальше пригодится).

Посмотреть все имеющиеся в кошельке адреса можно командой

wallet addresses

Создаем NFT

Создадим NFT c помощью команды:

wallet create-example-nft

Терминал выдаст подобный ответ:

Successfully created an ExampleNFT:
ID: ED883F6812AF447B9B0CE220DA5EA9E0F58012FE
Version: 1
Owner: Account Address ( 9E9A9D406961E478AA80F4A6B2B167673F3DF8BA )
Type: 0x2::DevNetNFT::DevNetNFT

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

Но у нас NFT без картинки и без описания. Давайте теперь создадим еще один NFT, но уже с картинкой и с описанием:

wallet create-example-nft --url=https://user-images.githubusercontent.com/76067158/166136286-c60fe70e-b982-4813-932a-0414d0f55cfb.png --description="The greatest chef in the world" --name="Greatest Chef"

Вместо url, description и name поставьте свою ссылку на картинку, описание и название.

Получится примерно такое:

Публикуем модуль

На странице https://docs.sui.io/build/move#writing-a-package приведен пример разработки модуля.

Предположим что мы делаем некую фентезийную игру и хотим сделать для нее меч (Sword) в виде NFT. У меча будут такие характеристики, как волшебство (magic) и сила (strength). Эту NFT можно будет минтить на какой-либо адрес.

Клонируем репозитарий:

git clone https://github.com/MystenLabs/sui.git

Выполняем команду публикации:

wallet publish --path sui/sui_programmability/tutorial --gas-budget 30000

Вы увидите результат выполнения в терминале наподобие этого:

Сохраните package object ID и Forge object ID.

Делаем вызов функции

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

Создайте второй адрес командой wallet new-address, если еще не сделали.

Выполните команду:

wallet call -function sword_create -module M1 -package 0x<PACKAGE_ID> -args \"0x<FORGE_ID>\" 42 7 \"0x<PLAYER_ADDRESS>\" -gas-budget 30000

<PACKAGE_ID>, <FORGE_ID>, <PLAYER_ADDRESS> замените соответственно на package object ID, Forge object ID и адрес. НЕ УДАЛЯЙТЕ 0x! Все должно быть написано слитно, как на примере ниже:

После выполнения команды вы увидите в терминале подобное:

На этом пока всё.

Подготовил Sr20de — русскоязычный канал о нодах

--

--