# Бинарный формат транзакции выпуска
Узнать больше о транзакции выпуска.
# Версия 3
Бинарный формат версии 3 соответствует protobuf-схеме transaction.proto. Описание полей, общих для всех типов транзакций, представлено в разделе Бинарный формат транзакции.
Версия 3 появилась с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions”.
message IssueTransactionData {
string name = 1;
string description = 2;
int64 amount = 3;
int32 decimals = 4;
bool reissuable = 5;
bytes script = 6;
};
Поле | Размер | Описание |
---|---|---|
name | От 4 до 16 байт | Название токена |
description | От 0 до 1000 байт | Описание токена |
amount | 8 байт | Количество токена в минимальных единицах («копейках») токена |
decimals | 1 байт | Количество знаков после запятой |
reissuable | 1 байт | Флаг возможности довыпуска |
script | До 8192 байт | Скрипт ассета |
# Версия 2
№ | Поле | Название JSON-поля | Тип поля | Размер поля в байтах | Комментарий |
---|---|---|---|---|---|
1 | Флаг версии | Byte | 1 | Указывает, что версия транзакции является второй или выше. Значение должно быть равно 0 | |
2 | ID типа транзакции | type | Byte | 1 | Значение должно быть равно 3 |
3 | Версия транзакции | version | Byte | 1 | Значение должно быть равно 2 |
4 | Байт сети | chainId | Byte | 1 | 87 — для Mainnet 84 — для Testnet 83 — для Stagenet |
5 | Открытый ключ аккаунта отправителя транзакции | senderPublicKey | Array[Byte] | 32 | |
6.1 | Длина названия токена | Short | 2 | ||
6.2 | Название токена | name | Array[Byte] | От 4 до 16 включительно | |
7.1 | Длина описания токена | Short | 2 | ||
7.2 | Описание токена | description | Array[Byte] | От 0 до 1000 включительно | |
8 | Количество токенов, которые будут выпущены | amount | Long | 8 | |
9 | Число знаков после запятой у токена | decimals | Byte | 1 | |
10 | Флаг возможности довыпуска | reissuable | Boolean | 1 | Если значение равно 0, то довыпуск невозможен. Если значение равно 1, то довыпуск возможен |
11 | Комиссия за транзакцию | fee | Long | 8 | |
12 | Временная метка транзакции | timestamp | Long | 8 | |
13.1 | Флаг наличия скрипта | Boolean | 1 | Если значение равно 0, то токен не имеет скрипт. Если значение равно 1, то токен имеет скрипт | |
13.2 | Длина скрипта | Short | S | S = 0, если значение поля "Флаг наличия скрипта" равно 0.S = 2, если значение поля "Флаг наличия скрипта" равно 1 | |
13.3 | Скрипт ассета | script | String | S | S = 0, если значение поля "Флаг наличия скрипта" равно 0.0 < S ≤ 8192, если значение поля "Флаг наличия скрипта" равно 1 |
14 | Подтверждения транзакции | proofs | См. раздел Бинарный формат подтверждений | S | Если массив пустой, то S = 3. Если массив не пустой, то S = 3 + 2 × N + 64 × N , где N — количество подтверждений в массиве.Максимальное количество подтверждений в массиве — 8. Размер каждого подтверждения — 64 байта |
Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.
# JSON-представление транзакции
Смотрите пример в Node API.
# Версия 1
№ | Название поля | Тип поля | Размер поля в байтах | Описание |
---|---|---|---|---|
1 | ID типа транзакции | Byte | 1 | Значение должно быть равно 3 |
2 | Подпись транзакции | Array[Byte] | 64 | |
3 | ID типа транзакции | Byte | 1 | Дублирует поле 1 |
4 | Открытый ключ аккаунта отправителя транзакции | Array[Byte] | 32 | |
5.1 | Длина имени токена | Short | 2 | |
5.2 | Имя токена | Array[Byte] | От 4 до 16 включительно | |
6.1 | Длина описания токена | Short | 2 | |
6.2 | Описание токена | Array[Byte] | От 0 до 1000 включительно | |
7 | Количество токенов | Long | 8 | |
8 | Количество знаков после запятой у токена | Byte | 1 | |
9 | Флаг возможности довыпуска | Boolean | 1 | Если значение равно 0, то довыпуск невозможен. Если значение равно 1, то довыпуск возможен |
10 | Комиссия за транзакцию | Long | 8 | |
11 | Временная метка транзакции | Long | 8 |
Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.
# Недопустимые символы в названиях и описаниях токенов
До активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions” было возможно создание токенов, название и описание которых не являются валидными строками в кодировке UTF-8. Такие токены есть только на Testnet (см. пример), на Mainnet их нет.
В следующих интерфейсах вместо некорректных последовательностей, не соответствующих ни одному символу, используется заменяющий символ �:
- REST API и gRPC Server как в Node Scala, так и в Node Go
- Blockchain Updates в Node Scala
- Data Service API