Ваша первая монета
В этом руководстве подробно описано, как использовать и управлять новой монетой. Рассмотрим следующие шаги:
Разверните модуль MoonCoin. Будем называть его MoonCoin.
Инициализируйте MoonCoin через стандартный модуль фреймворка Coin.
Зарегистрируйте учетную запись получателя, чтобы получить MoonCoin.
Создайте MoonCoin получателю как владелец MoonCoin.
Это руководство основано на секции Ваша первая транзакция в качестве библиотеки для этого примера. Данное руководство содержит пример кода, который можно загрузить ниже:
В этом руководстве основное внимание будет уделено first_coin.py и повторному использованию библиотекиfirst_transaction.py из предыдущего руководства.
Вы найдете python project здесь
В этом руководстве основное внимание будет уделено first_coin.rs и повторному использованию библиотеки first_transaction.rs из предыдущего руководства.
Вы найдете rust project здесь
В этом руководстве основное внимание будет уделено first_coin.ts и повторному использованию библиотеки first_transaction.ts из предыдущего руководства.
Вы найдете typescript project здесь
Шаг 1) Разверните модуль MoonCoin
Шаг 1.1) Загрузите Aptos-core
Для простоты выполнения этой задачи у Aptos-core имеется move-examples каталог, который позволяет легко создавать и тестировать модули Move без загрузки дополнительных ресурсов. Со временем мы расширим этот раздел и опишем, как использовать инструменты Move для разработки.
А сейчас загрузите и подготовьте Aptos-core:
git clone https://github.com/aptos-labs/aptos-core.git
cd aptos-core
./scripts/dev_setup.sh
source ~/.cargo/env
git checkout origin/devnetУстановите Aptos Commandline tool. См. подробнее Aptos command line tool
Шаг 1.2) Просмотрите модуль
В этом терминале измените каталоги на aptos-move/move-examples/moon_coin. Сохраните это окно терминала до конца руководства - в дальнейшем мы будем называть его «Move Window». В оставшейся части этого раздела будет рассмотрен файл sources/MoonCoinType.move.
Этот модуль позволяет пользователям создать новый MoonCoinType::MoonCoin::MoonCoin, который можно использовать для регистрации в платформенном модуле Coin (0x1::Coin) для создания стандартной монеты Coin. Разработчики могут написать свои собственные функции в модуле MoonCoin, если они хотят сделать больше, чем то, что предоставляется в стандартном режиме 0x1::Coin или 0x1::ManagedCoin (добавляет функции создания/сжигания монет).
Код очень прост, так как мы не добавляем в MoonCoin больше функций, чем стандартные, предоставляемые фреймворком Coin (перевод, депозит, вывод, создание, сжигание). Наиболее важной частью является структура MoonCoin, определяющая новый тип монеты, которую можно зарегистрировать с помощью 0x1::Coin.
Шаг 1.3) Развертывание модуля Move, содержащего тип MoonCoin
Для Python3:
Загрузите example project
Откройте свой любимый терминал и перейдите туда, куда вы загрузили приведенный выше пример проекта.
Установите необходимые библиотеки:
pip3 install -r requirements.txt.Выполните пример:
python3 first_coin.py MoonCoin.mv
Для Rust:
Загрузите example project
Откройте свой любимый терминал и перейдите туда, куда вы загрузили приведенный выше пример проекта.
Выполните пример:
cargo run --bin first_coin -- MoonCoin.mv
Для Typescript:
Загрузите example project
Откройте свой любимый терминал и перейдите туда, куда вы загрузили приведенный выше пример проекта.
Установите необходимые библиотеки:
yarn installВыполните пример:
yarn first_coin MoonCoin.mv
Шаг 1.4) Проверка результата выполнения
Через несколько секунд вы увидите сообщение «Обновите модуль с адресом Алисы, создайте, скопируйте указанный путь и нажмите enter».
В терминале «Move Window» и для файла Move, который мы ранее рассматривали:
Скопируйте адрес Алисы
Скомпилируйте модули с адресом Алисы с помощью
aptos move compile --package-dir . --named-addresses MoonCoinType=0x{alice_address_here}. Здесь мы заменяем общий адресMoonCoinType='_'вmoon_coin/move.tomlна адрес АлисыСкопируйте
build/Examples/bytecode_modules/MoonCoin.mvв ту же папку, что и код этого руководства
Вернитесь в другое окно терминала и нажмите "enter" в командной строке, чтобы продолжить выполнение остальной части кода
Результат должен выглядеть следующим образом:
Шаг 2) Инициализируйте MoonCoin
Модуль MoonCoin уже развернут. Следующим шагом будет инициализация MoonCoin. В этом примере мы будем использовать 0x1::ManagedCoin::initialize, так как нам нужна возможность создавать/сжигать наш новый MoonCoin. Это добавит в MoonCoin стандартные функции, такие как перевод, создание, сжигание и стандартные события (регистрация, депозит, вывод).
Шаг 3) Зарегистрируйте учетную запись получателя для получения MoonCoin
В других сетях, поскольку токены/монеты — это просто номера баланса в контракте, любой может «отправить» кому угодно случайную монету, даже если получатель этого не хочет. В Aptos пользователь должен зарегистрироваться для получения Coin<RandomCoin> , прежде чем ее можно будет ему отправить.
Чтобы зарегистрироваться, получателю достаточно запустить 0x1::Coin::register<CoinType>:
Шаг 4) Отправьте MoonCoin получателю как владельцу MoonCoin
При инициализации новой монеты (Шаг 2) учетная запись владельца получает возможность создавать/сжигать новую монету. Учетная запись владельца может создать MoonCoin, активировав 0x1::ManagedCoin::mint.
Шаг 5) Проверьте баланс MoonCoin Боба
Данные можно проверить, посетив либо интерфейс REST, либо explorer:
Учетная запись Алисы через REST interface
Учетная запись Боба через explorer
Last updated