Aptos Coin
Coin предоставляет стандартную, безопасную для типов структуру для простых, взаимозаменяемых tokens или coins.
ПОДСКАЗКА
Монета хранится в 0x1::coin.
Структуры
Повторное использование
Сoin определяется в Move как:
Coin использует CoinType
для поддержки повторного использования платформы Coin для разных Coins. Например, Coin<A>
и Coin<B>
два разных Coins
Глобальное хранилище
Coin также поддерживает ресурс для хранения монет в глобальном хранилище:
Информация о Coin или метаданные хранятся в глобальном хранилище под учетной записью создателей Coin:
Примитивы
Coin предоставляет примитивы для пользователей, создающих и управляющих coin, и пользователей, которые ее используют.
Создатели
Создатели и менеджеры Coin могут:
Инициализация coin, установка ее метаданных и мониторинг обеспечения.
Минт и сжигание стоимости coin.
Сжигание coin из
CoinStore
.Замораживание движения в и из
CoinStore
.
Пользователи
Пользователи Coin могут:
Объединить две структуры Coin одного типа.
Извлекать значение из структуры Coin в новую структуру Coin.
Возможность вводить и выводить средства из
CoinStore
и создавать события в результате.Позволяет пользователям регистрировать
CoinStore<CoinType>
в своей учетной записи для обработки coin.
Создание нового CoinType
Создатель coin может опубликовать в учетной записи на сети новый модуль, определяющий структуру для представления нового типа coin CoinType
. Затем создатель coin вызовет coin:initialize<CoinType>
из этой учетной записи, чтобы зарегистрировать его как действительную coin, и в ответ получит структуры, позволяющие вызывать функции для сжигания и минта coin и замораживания CoinStores
. Они должны храниться в глобальном хранилище создателя для управления использованием coin.
Создатель имеет возможность определить название, символ, десятичные знаки, а также то, отслеживается ли общее предложение для coin или нет. Применяется следующее:
Первые три параметра (
name
,symbol
,decimals - имя
,символ
,десятичные знаки
) являются чисто метаданными и не имеют никакого влияния на работу приложений на сети. Некоторые приложения могут использовать десятичную дробь для приравнивания одного coin к дробным coin.Мониторинг предложения (
monitor_supply
) помогает отслеживать общее количество coin в наличии. Однако из-за особенностей работы параллельного исполнителя включение этой опции предотвратит параллельное выполнение операций минта и сжигания. Если coin будет регулярно минтится или сжигаться, подумайте об отключенииmonitor_supply
.
Минт Coins
Если создатель или менеджер хотят минтить coins, они должны получить ссылку на свою MintCapability
, которая была создана в initialize
, и вызвать ее:
В результате будет создана новая структура Coin, содержащая значение, определяемое amount
. Если предложение отслеживается, то оно также будет скорректировано.
Сжигание Coins
Если создатель или менеджер хотят сжечь coins, они должны получить ссылку на свою BurnCapability
, которая была создана в initialize
, и вызвать ее:
Создатель или менеджер также может сжечь coins из CoinStore
:
BURN VS BURN_FROM
Функция burn
устраняет всю стоимость, хранящуюся в coin, в то время как burn_from
устраняет только заданное количество стоимости из CoinStore
. Если отслеживается запас, то он также будет скорректирован.
Сжигание coin c учетной записи не вызывает событие WithdrawEvent
, как это делает функция withdraw
.
Замораживание учетных записей
Если создатель или менеджер хочет заморозить CoinStore
на определенной учетной записи, они должны получить ссылку на свою FreezeCapability
, которая была создана в initialize
, и вызвать:
Слияние Coins
Два coins одного типа могут быть объединены в одну структуру Coin, которая представляет накопленную стоимость двух coins независимо друг от друга, путем вызова:
Извлечение Coins
У Coin может быть вычтена стоимость для создания другой Coin путем вызова:
Вывод Coins из CoinStore
Владелец CoinStore
может извлечь Coin указанной суммы путем вызова:
ПОДСКАЗКА Эта функция выдает событие WithdrawEvent.
Депозит Coins в CoinStore
Любой субъект может пополнить CoinStore
учетной записи coins, вызвав:
ПОДСКАЗКА
Эта функция создает событие DepositEvent
.
Передача Coins
Владелец CoinStore
может напрямую перевести coins со своей учетной записи на CoinStore
другой учетной записи, вызвав:
ПОДСКАЗКА
Это вызовет событие WithdrawEvent
и DespositEvent
на соответствующих CoinStores
.
События
Last updated