waves_logo Docs
  • Почему Waves
    Почему Waves
  • Основные понятия
    Основные понятия
  • Аккаунт
    • Создание аккаунта
      Создание аккаунта
    • Адрес
      Адрес
    • Баланс аккаунта
      Баланс аккаунта
    • Хранилище данных аккаунта
      Хранилище данных аккаунта
    • Псевдоним
      Псевдоним
    • dApp и смарт-аккаунт
      dApp и смарт-аккаунт
    Аккаунт
  • Токен (ассет)
    • NFT: невзаимозаменяемый токен
      NFT: невзаимозаменяемый токен
    • Смарт-ассет
      Смарт-ассет
    • ID токена
      ID токена
    • WAVES
      WAVES
    Токен (ассет)
  • Транзакция
    • Комиссия за транзакцию
      • Спонсирование комиссии
        Спонсирование комиссии
      Комиссия за транзакцию
    • Подпись и подтверждения
      Подпись и подтверждения
    • Типы транзакций
      • Вызов скрипта
        Вызов скрипта
      • Выпуск
        Выпуск
      • Генезис
        Генезис
      • Данные
        Данные
      • Довыпуск
        Довыпуск
      • Закрытие лизинга
        Закрытие лизинга
      • Лизинг
        Лизинг
      • Массовый перевод
        Массовый перевод
      • Обмен
        • Ордер
          Ордер
        Обмен
      • Обновление информации ассета
        Обновление информации ассета
      • Перевод
        Перевод
      • Сжигание токена
        Сжигание токена
      • Cоздание псевдонима
        Cоздание псевдонима
      • Спонсирование
        Спонсирование
      • Установка скрипта
        Установка скрипта
      • Установка скрипта ассета
        Установка скрипта ассета
      • Ethereum-like транзакция
        Ethereum-like транзакция
      Типы транзакций
    • Валидация транзакции
      Валидация транзакции
    Транзакция
  • Блок
    • Корневой хеш транзакций
      Корневой хеш транзакций
    • Блок генезиса
      Блок генезиса
    Блок
  • Нода
    • Лизинг
      Лизинг
    • Доход генератора блока
      Доход генератора блока
    • Монетарная политика
      Монетарная политика
    Нода
  • Mainnet, Testnet, Stagenet
    Mainnet, Testnet, Stagenet
  • Unit Zero
    Unit Zero
  • Оракул
    Оракул
  • Протоколы и форматы данных
    • [en] Cryptographic practical details
      [en] Cryptographic practical details
    • Leased Proof of Stake
      Leased Proof of Stake
    • [en] Waves-NG solution
      [en] Waves-NG solution
    • Протокол Waves-NG
      Протокол Waves-NG
    • Waves 1.5
      Waves 1.5
    • Типы данных блокчейна
      Типы данных блокчейна
    • Бинарные форматы
      • Бинарный формат адреса
        Бинарный формат адреса
      • Бинарный формат псевдонима
        Бинарный формат псевдонима
      • Бинарный формат блока
        Бинарный формат блока
      • [en] Network message binary format
        • [en] Block message binary format
          [en] Block message binary format
        • [en] Checkpoint message binary format
          [en] Checkpoint message binary format
        • [en] Get block message binary format
          [en] Get block message binary format
        • [en] Get peers message binary format
          [en] Get peers message binary format
        • [en] Get signatures message binary format
          [en] Get signatures message binary format
        • [en] Handshake message binary format
          [en] Handshake message binary format
        • [en] Peers message binary format
          [en] Peers message binary format
        • [en] Score message binary format
          [en] Score message binary format
        • [en] Signatures message binary format
          [en] Signatures message binary format
        • [en] Transaction message binary format
          [en] Transaction message binary format
        [en] Network message binary format
      • Бинарный формат ордера
        Бинарный формат ордера
      • Бинарный формат транзакции
        • Вызов скрипта
          Вызов скрипта
        • Выпуск
          Выпуск
        • Генезис
          Генезис
        • Данные
          Данные
        • Довыпуск
          Довыпуск
        • Лизинг
          Лизинг
        • Массовый перевод
          Массовый перевод
        • Обмен
          Обмен
        • Обновление информации ассета
          Обновление информации ассета
        • Отмена лизинга
          Отмена лизинга
        • Сжигание токена
          Сжигание токена
        • Cоздание псевдонима
          Cоздание псевдонима
        • Спонсирование
          Спонсирование
        • Перевод
          Перевод
        • Установка скрипта
          Установка скрипта
        • Установка скрипта ассета
          Установка скрипта ассета
        • Ethereum-like
          Ethereum-like
        Бинарный формат транзакции
      • Бинарный формат подтверждений
        Бинарный формат подтверждений
      Бинарные форматы
    • [en] Validation rules
      [en] Validation rules
    Протоколы и форматы данных
  • Термины
    Термины
      • English
      • Русский
      On this page
        • Версия 3
        • Версия 2
        • JSON-представление транзакции
        • Версия 1
      waves_logo Docs

          # Бинарный формат транзакции перевода

          Узнать больше о транзакции перевода.

          # Версия 3

          Бинарный формат версии 3 соответствует protobuf-схеме transaction.proto . Описание полей, общих для всех типов транзакций, представлено в разделе Бинарный формат транзакции.

          Версия 3 появилась с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions”.

          message TransferTransactionData {
              Recipient recipient = 1;
              Amount amount = 2;
              bytes attachment = 3;
          };
          
          message Recipient {
              oneof recipient {
                  bytes public_key_hash = 1;
                  string alias = 2;
              };
          
          message Amount {
              bytes asset_id = 1;
              int64 amount = 2;
          };
          
          Поле Размер Описание
          recipient.public_key_hash 20 байт Хеш открытого ключа аккаунта получателя (компонент адреса, см. раздел Бинарный формат адреса)
          recipient.alias От 4 до 30 байт Псевдоним адреса получателя
          amount.asset_id 32 байта ID токена
          amount.amount 8 байт Количество токена для перевода, в минимальных единицах («копейках»)
          attachment До 140 байт Произвольные данные (обычно комментарий к транзакции)

          # Версия 2

          № Поле Название JSON-поля Тип поля Размер поля в байтах Комментарий
          1 Флаг версии Byte 1 Указывает, что версия транзакции является второй или выше.
          Значение должно быть равно 0
          2 ID типа транзакции type Byte 1 Значение должно быть равно 4
          3 Версия транзакции version Byte 1 Значение должно быть равно 2
          4 Открытый ключ аккаунта отправителя транзакции senderPublicKey Array[Byte] 32
          5.1 Флаг типа переводимого токена Byte 1 0 — WAVES
          1 — другой токен
          5.2 ID переводимого токена assetId Array[Byte] S S = 0, если значение поля 5.1 равно 0.
          S = 32, если значение поля 5.1 не равно 0
          6.1 Флаг типа токена комиссии Byte 1 0 — WAVES
          1 — другой токен
          6.2 ID токена комиссии feeAssetId Array[Byte] S S = 0, если значение поля 6.1 равно 0.
          S = 32, если значение поля 6.1 не равно 0
          7 Временная метка транзакции timestamp Long 8
          8 Количество токена для перевода amount Long 8
          9 Комиссия за транзакцию fee Long 8
          10 Адрес или псевдоним получателя recipient См. Бинарный формат адреса, Бинарный формат псевдонима S Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26.
          Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34
          11.1 Длина вложения Short 2
          11.2 Вложение attachment Array[Byte] До 140 включительно Может включать произвольные данные
          12 Подтверждения транзакции proofs См. раздел Бинарный формат подтверждений S Если массив пустой, то S = 3.
          Если массив не пустой, то S = 3 + 2 × N + 64 × N, где N — количество подтверждений в массиве.
          Максимальное количество подтверждений в массиве — 8. Размер каждого подтверждения — 64 байта

          Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.

          # JSON-представление транзакции

          Смотрите пример  в Node API. В JSON-представлении значения полей feeAsset и feeAssetId идентичны.

          # Версия 1

          № Название поля Тип поля Размер поля в байтах Комментарий
          1 ID типа транзакции Byte 1 Значение должно быть равно 4
          2 Подпись транзакции Array[Byte] 64
          3 ID типа транзакции Byte 1 Дублирует поле 1
          4 Открытый ключ аккаунта отправителя транзакции Array[Byte] 32
          5.1 Флаг типа переводимого токена Byte 1 0 — WAVES
          1 — другой токен
          5.2 ID переводимого токена Array[Byte] S S = 0, если значение поля 5.1 равно 0.
          S = 32, если значение поля 5.1 не равно 0
          6.1 Флаг типа токена комиссии Byte 1 0 — WAVES
          1 — другой токен
          6.2 ID токена комиссии Array[Byte] S S = 0, если значение поля 6.1 равно 0.
          S = 32, если значение поля 6.2 не равно 0
          7 Временная метка транзакции Long 8
          8 Количество токена для перевода Long 8
          9 Комиссия за транзакцию Long 8
          10 Адрес или псевдоним получателя Array[Byte] S Если первым байтом поля является 1, то за ним следует адрес. S в этом случае равняется 26
          Если первым байтом поля является 2, то за ним следует псевдоним. В этом случае 8 <= S <= 34
          11.1 Длина вложения Short 2
          11.2 Вложение Array[Byte] До 140 включительно Может включать произвольные данные

          Поля, номера которых выделены жирным шрифтом, составляют байты тела транзакции.

          Спонсирование
          Установка скрипта
          Спонсирование
          Установка скрипта