# Бинарный формат транзакции массового перевода
Узнать больше о транзакции массового перевода.
# Версия 2
Бинарный формат версии 2 соответствует protobuf-схеме transaction.proto. Описание полей, общих для всех типов транзакций, представлено в разделе Бинарный формат транзакции.
Версия 2 появилась с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions”.
message MassTransferTransactionData {
message Transfer {
Recipient recipient = 1;
int64 amount = 2;
};
bytes asset_id = 1;
repeated Transfer transfers = 2;
bytes attachment = 3;
};
message Recipient {
oneof recipient {
bytes public_key_hash = 1;
string alias = 2;
};
Поле | Размер | Описание |
---|---|---|
asset_id | 32 байта | Идентификатор переводимого токена |
transfers.recipient.public_key_hash | 20 байт | Хеш открытого ключа аккаунта получателя (компонент адреса, см. раздел Бинарный формат адреса) |
transfers.recipient.alias | От 4 до 30 байт | Псевдоним адреса получателя |
transfers.amount | 8 байт | Количество токена для перевода, в минимальных единицах («копейках») токена |
attachment | До 140 байт | Произвольные данные (обычно комментарий к транзакции) |
Количество переводов — не более 100.
# Версия 1
№ | Поле | Название JSON-поля | Тип поля | Размер поля в байтах | Комментарий |
---|---|---|---|---|---|
1 | ID типа транзакции | type | Byte | 1 | Значение должно быть равно 11 |
2 | Версия транзакции | version | Byte | 1 | Значение должно быть равно 2 |
3 | Открытый ключ аккаунта отправителя транзакции | senderPublicKey | Array[Byte] | 32 | |
4.1 | Флаг WAVES/токен | Byte | 1 | Равен 0, если переводится WAVES. Равен 1, если переводится другой токен | |
4.2 | ID токена | assetId | Array[Byte] | S | S = 0 если значение поля "Флаг WAVES/токен" равно 0. S = 32 если значение поля "Флаг WAVES/токен" равно 1 |
5.1 | Количество переводов | transferCount | Short | 2 | Количество переводов токенов в транзакции |
5.2 | Адрес или псевдоним получателя перевода 1 | recipient | См. Бинарный формат адреса, Бинарный формат псевдонима | S | Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26.Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34 |
5.3 | Количество токена в переводе 1 | amount | Long | 8 | |
5.4 | Адрес или псевдоним получателя перевода 2 | recipient | См. Бинарный формат адреса, Бинарный формат псевдонима | S | Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26.Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34 |
5.5 | Количество токена в переводе 2 | amount | Long | 8 | |
... | ... | ... | ... | ... | ... |
... | ... | ... | ... | ... | ... |
5.[2 × N] | Адрес или псевдоним получателя перевода N | recipient | См. Бинарный формат адреса, Бинарный формат псевдонима | S | Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26.Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34 |
5.[2 × N + 1] | Количество токена в переводе N | amount | Long | 8 | |
6 | Временная метка транзакции | timestamp | Long | 8 | |
7 | Комиссия за транзакцию | fee | Long | 8 | |
8.1 | Длина вложения | Short | 2 | ||
8.2 | Вложение | Short | 2 | Произвольные данные, прикладываемые к транзакции | |
9 | Подтверждения транзакции | proofs | См. раздел Бинарный формат подтверждений | S | Если массив пустой, то S = 3. Если массив не пустой, то S = 3 + 2 × N + 64 × N , где N — количество подтверждений в массиве.Максимальное количество подтверждений в массиве — 8. Размер каждого подтверждения — 64 байта |
Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.
# JSON-представление транзакции
Смотрите пример в Node API.