# Бинарный формат транзакции лизинга
Узнать больше о транзакции лизинга.
# Версия 3
Бинарный формат версии 3 соответствует protobuf-схеме transaction.proto. Описание полей, общих для всех типов транзакций, представлено в разделе Бинарный формат транзакции.
Версия 3 появилась с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions”.
message LeaseTransactionData {
Recipient recipient = 1;
int64 amount = 2;
};
message Recipient {
oneof recipient {
bytes public_key_hash = 1;
string alias = 2;
};
};
Поле | Размер | Описание |
---|---|---|
recipient.public_key_hash | 20 байт | Хеш открытого ключа аккаунта получателя (компонент адреса, см. раздел Бинарный формат адреса) |
recipient.alias | От 4 до 30 байт | Псевдоним адреса получателя |
amount | 8 байт | Количество WAVELET, отдаваемое в лизинг (то есть количество WAVES, умноженное на 108) |
# Версия 2
№ | Поле | Название JSON-поля | Тип поля | Размер поля в байтах | Комментарий |
---|---|---|---|---|---|
1 | Флаг версии | Byte | 1 | Указывает что версия транзакции является второй или выше. Значение должно быть равно 0 | |
2 | ID типа транзакции | type | Byte | 1 | Значение должно быть равно 8 |
3 | Версия транзакции | version | Byte | 1 | Значение должно быть равно 2 |
4 | Зарезервированное поле | Byte | 1 | Значение должно быть равно 0 | |
5 | Открытый ключ аккаунта отправителя транзакции | senderPublicKey | Array[Byte] | 32 | |
6 | Адрес или псевдоним получателя | recipient | См. Бинарный формат адреса, Бинарный формат псевдонима | S | Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26.Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34 |
7 | Количество токенов, отдаваемых в лизинг | amount | Long | 8 | |
8 | Комиссия за транзакцию | fee | Long | 8 | |
9 | Временная метка транзакции | timestamp | Long | 8 | |
10 | Подтверждения транзакции | proofs | См. раздел Бинарный формат подтверждений | S | Если массив пустой, то S = 3. Если массив не пустой, то S = 3 + 2 × N + 64 × N , где N — количество подтверждений в массиве.Максимальное количество подтверждений в массиве — 8. Размер каждого подтверждения — 64 байта |
Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.
# JSON-представление транзакции
Смотрите пример в Node API.
# Версия 1
№ | Поле | Тип поля | Размер поля в байтах | Комментарий |
---|---|---|---|---|
1 | ID типа транзакции | Byte | 1 | Значение должно быть равно 8 |
2 | Открытый ключ аккаунта отправителя транзакции | Array[Byte] | 32 | |
3 | Адрес или псевдоним получателя | См. Бинарный формат адреса, Бинарный формат псевдонима | S | Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26.Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34 |
4 | Количество токенов, отдаваемых в лизинг | Long | 8 | |
5 | Комиссия за транзакцию | Long | 8 | |
6 | Временная метка транзакции | Long | 8 | |
7 | Подпись транзакции | Array[Byte] | 64 |
Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.