# Бинарный формат транзакции выпуска
Узнать больше о транзакции выпуска.
# Версия 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