Транзакции

В этом разделе приведена структура хранения транзакций в блокчейн-платформе Waves Enterprise. Для некоторых типов транзакций введено версионирование.

Важно

Все транзакции используют поле timestamp, содержащее временную метку в формате Unix Timestamp в миллисекундах.

Типы транзакций

Тип транзакции

Комиссия

Описание

1

Genesis transaction

отсутствует

Первоначальная привязка баланса к адресам создаваемых при старте блокчейна нод

3

Issue Transaction

1WEST

Выпуск токенов

4

Transfer Transaction

0.01WEST

Перевод токенов

5

Reissue Transaction

1WEST

Перевыпуск токенов

6

Burn Transaction

0.05WEST

Сжигание токенов

8

Lease Transaction

0.01WEST

Передача токенов в аренду

9

Lease Cancel Transaction

0.01WEST

Отмена аренды токенов

10

Create Alias Transaction

1WEST

Создание псевдонима

11

MassTransfer Transaction

0.05WEST

Массовый перевод токенов. Указана минимальная комиссия

12

Data Transaction

0.05WEST

Транзакция с данными в виде полей с парой ключ-значение. Указана минимальная комиссия

13

SetScript Transaction

0.5WEST

Транзакция, привязывающая скрипт с RIDE-контрактом к аккаунту

15

SetAssetScript

1WEST

Транзакция, привязывающая скрипт с RIDE-контрактом к ассету

101

Genesis Permission Transaction

отсутствует

Назначение первого администратора сети для дальнейшей раздачи прав

102

Permission Transaction

0.01WEST

Выдача/отзыв прав у аккаунта

103

CreateContract Transaction

1WEST

Создание Docker-контракта

104

CallContract Transaction

0.1WEST

Вызов Docker-контракта

105

ExecutedContract Transaction

отсутствует

Выполнение Docker-контракта

106

DisableContract Transaction

0.1WEST

Отключение Docker-контракта

107

UpdateContract Transaction

1WEST

Обновление Docker-контракта

110

GenesisRegisterNode Transaction

отсутствует

Регистрация ноды в генезис-блоке при старте блокчейна

111

RegisterNode Transaction

0.01WEST

Регистрация новой ноды в сети

112

CreatePolicy Transaction

1WEST

Создание группы доступа к конфиденциальным данным

113

UpdatePolicy Transaction

0.5WEST

Изменение группы доступа

114

PolicyDataHash Transaction

0.05WEST

Отправка в сеть хеша данных

1. Genesis transaction

Field

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

fee

Long

timestamp

Long

signature

ByteStr

recipient

ByteStr

amount

Long

height

3. issueTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

assetId

ByteStr

name

Array[Byte]

quantity

Long

reissuable

Boolean

decimals

Byte

description

Array[Byte]

chainId

Byte

script

  • (opt)

Bytes

password

  • (opt)

String

height

JSON для вызова метода sign

{
   "type": 3,
   "version":2,
   "name": "Test Asset 1",
   "quantity": 100000000000,
   "description": "Some description",
   "sender": "3FSCKyfFo3566zwiJjSFLBwKvd826KXUaqR",
   "password": "",
   "decimals": 8,
   "reissuable": true,
   "fee": 100000000
}

Broadcasted JSON

{
    "type": 3,
    "id": "DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB",
    "sender": "3N65yEf31ojBZUvpu4LCo7n8D73juFtheUJ",
    "senderPublicKey": "C1ADP1tNGuSLTiQrfNRPhgXx59nCrwrZFRV4AHpfKBpZ",
    "fee": 100000000,
    "timestamp": 1549378509516,
    "proofs": [ "NqZGcbcQ82FZrPh6aCEjuo9nNnkPTvyhrNq329YWydaYcZTywXUwDxFAknTMEGuFrEndCjXBtrueLWaqbJhpeiG" ],
    "version": 2,
    "assetId": "DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB",
    "name": "Token Name",
    "quantity": 10000,
    "reissuable": true,
    "decimals": 2,
    "description": "SmarToken",
    "chainId": 84,
    "script": "base64:AQa3b8tH",
    "height": 60719
},

4. TransferTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

recipient

ByteStr

assetId

  • (opt)

ByteStr

feeAssetId

  • (opt)

Bytes

amount

Long

attachment

  • (opt)

Bytes

password

  • (opt)

String

height

JSON для вызова метода sign

{
  "type": 4,
  "version": 2,
  "sender": "3M6dRZXaJY9oMA3fJKhMALyYKt13D1aimZX",
  "password": "",
  "recipient": "3M6dRZXaJY9oMA3fJKhMALyYKt13D1aimZX",
  "amount": 40000000000,
  "fee": 100000
}

Broadcasted JSON

{
    "senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
    "amount": 200000000,
    "fee": 100000,
    "type": 4,
    "version": 2,
    "attachment": "3uaRTtZ3taQtRSmquqeC1DniK3Dv",
    "sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
    "feeAssetId": null,
    "proofs": [
    "2hRxJ2876CdJ498UCpErNfDSYdt2mTK4XUnmZNgZiq63RupJs5WTrAqR46c4rLQdq4toBZk2tSYCeAQWEQyi72U6"
    ],
    "assetId": null,
    "recipient": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL",
    "id": "757aQzJiQZRfVRuJNnP3L1d369H2oTjUEazwtYxGngCd",
    "timestamp": 1558952680800
}

5. ReissueTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

chainId

Byte

assetId

ByteStr

quantity

Long

reissuable

Boolean

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 5,
    "version":2,
    "quantity": 10000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "reissuable": true,
    "fee": 100000001
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "quantity": 10000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "chainId": 84,
    "proofs": [ "3gmgGM6rYpxuuR5QvJkugPsERG7yWYF7JN6QzpUGJwT8Lw6SUHkzzk8R22A7cGQz7TQQ5NifKxvAQzwPyDQbwmBg" ],
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "fee": 100000001,
    "id": "GsNvk15Vu4kqtRmMSpYW21WzgJpZrLBwjCREHWuwnvh5",
    "type": 5,
    "version": 2,
    "reissuable": true,
    "timestamp": 1551447859299,
    "height": 1190
}

6. BurnTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

chainId

Byte

assetId

ByteStr

quantity

Long

amount

Long

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 6,
    "version": 2,
    "sender": "3MtrNP7AkTRuBhX4CBti6iT21pQpEnmHtyw",
    "password": "",
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "quantity": 1000,
    "fee": 100000,
    "attachment": "string"
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "amount": 1000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "chainId": 84,
    "proofs": [ "kzTwsNXjJkzk6dpFFZZXyeimYo6iLTVbCnCXBD4xBtyrNjysPqZfGKk9NdJUTP3xeAPhtEgU9hsdwzRVo1hKMgS" ],
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg",
    "fee": 100000,
    "id": "3yd2HZq7sgun7GakisLH88UeKcpYMUEL4sy57aprAN5E",
    "type": 6,
    "version": 2,
    "timestamp": 1551448489758,
    "height": 1190
}

8. LeaseTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

amount

Long

recipient

ByteStr

status

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 8,
    "version": 2,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "recipient": "3N1ksBqc6uSksdiYjCzMtvEpiHhS1JjkbPh",
    "amount": 1000,
    "fee": 100000
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "amount": 1000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "proofs": [ "5jvmWKmU89HnxXFXNAd9X41zmiB5fSGoXMirsaJ9tNeyiCAJmjm7MR48g789VucckQw2UExaVXfhsdEBuUrchvrq" ],
    "fee": 100000,
    "recipient": "3N1ksBqc6uSksdiYjCzMtvEpiHhS1JjkbPh",
    "id": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp",
    "type": 8,
    "version": 2,
    "timestamp": 1551449299545,
    "height": 1190
}

9. LeaseCancelTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

chainId

Byte

leaseId

  • (txId)

Byte

lease

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 9,
    "version": 2,
    "fee": 100000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "txId": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp"
}

Broadcasted JSON

{
   "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "leaseId": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp",
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "chainId": 84,
    "proofs": [ "2Gns72hraH5yay3eiWeyHQEA1wTqiiAztaLjHinEYX91FEv62HFW38Hq89GnsEJFHUvo9KHYtBBrb8hgTA9wN7DM" ],
    "fee": 100000,
    "id": "9vhxB2ZDQcqiumhQbCPnAoPBLuir727qgJhFeBNmPwmu",
    "type": 9,
    "version": 2,
    "timestamp": 1551449835205,
    "height": 1190
}

10. CreateAliasTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

alias

Bytes

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 10,
    "version": 2,
    "fee": 100000,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "alias": "hodler"
}

Broadcasted JSON

{
    "type": 10,
    "id": "DJTaiMpb7eLuPW5GcE4ndeE8jWsWPjx8gPYmbZPJjpag",
    "sender": "3N65yEf31ojBZUvpu4LCo7n8D73juFtheUJ",
    "senderPublicKey": "C1ADP1tNGuSLTiQrfNRPhgXx59nCrwrZFRV4AHpfKBpZ",
    "fee": 0,
    "timestamp": 1549290335781,
    "signature": "2qYepod9DhpxVad1yQDbv1QzU4KLKcbjjdtGY7De2272K76nbQfaXsRnyd31hUE8bhvLjjpHRdtoLVzbBDzRZYEY",
    "proofs": [ "2qYepod9DhpxVad1yQDbv1QzU4KLKcbjjdtGY7De2272K76nbQfaXsRnyd31hUE8bhvLjjpHRdtoLVzbBDzRZYEY" ],
    "version": 1,
    "alias": "testperson4",
    "height": 59245
}

11. MassTransferTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

assetId

  • (opt)

ByteStr

attachment

  • (opt)

transfers

List[Transfer]

transferCount

totalAmount

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 11,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "fee": 2000000,
    "version": 1,
    "transfers":
    [
        { "recipient": "3MtHszoTn399NfsH3v5foeEXRRrchEVtTRB", "amount": 100000 },
        { "recipient": "3N7BA6J9VUBfBRutuMyjF4yKTUEtrRFfHMc", "amount": 100000 }
    ],
    "height": 1190
}

Broadcasted JSON

{
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "fee": 2000000,
    "type": 11,
    "transferCount": 2,
    "version": 1,
    "totalAmount": 200000,
    "attachment": "",
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "proofs": [ "2gWpMWdgZCjbygCX5US3aAFftKtGPRSK3aWGJ6RDnWJf9hend5sBFAgY6u3Mp4jN8cqwaJ5o8qrKNedGN5CPN1GZ" ],
    "assetId": null,
    "transfers":
    [
        {
            "recipient": "3MtHszoTn399NfsH3v5foeEXRRrchEVtTRB",
            "amount": 100000
        },
        {
            "recipient": "3N7BA6J9VUBfBRutuMyjF4yKTUEtrRFfHMc",
            "amount": 100000
        }
    ],
    "id": "D9jUSHHcJqVAvkFMiRfDBhQbUzoSfQqd9cjaunMmtjdu",
    "timestamp": 1551450279637
}

12. DataTransaction

Предупреждение

Транзакция имеет ограничения:

  1. Количество данных в секции «data» передаваемого JSON должно быть не более 100 пар "key":"value",

    "data": [
          {
           "key": "objectId",
           "type": "string",
           "value": "obj:123:1234"
          }, {...}
         ]
    
  2. Байтовое представление транзакции после подписания не должно превышать размер в 150 КБ.

Подсказка

Параметр senderPublicKey не требуется указывать, если подписывается транзакция, в которой автор и отправитель совпадают.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size (Bytes)

type

Byte

1

id

Byte

1

sender

PublicKeyAccount

3264

senderPublicKey

  • (opt)

PublicKeyAccount

3264

fee

Long

8

timestamp

  • (opt)

Long

8

proofs

List[ByteStr]

32767

version

Byte

1

authorPublicKey

PublicKeyAccount

3264

author

3264

data

3264

password

  • (opt)

String

32767

height

8

JSON для вызова метода sign

{
    "type": 12,
    "version": 1,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "author": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "data": [
        {
        "key": "objectId",
        "type": "string",
        "value": "obj:123:1234"
        }
    ],
    "fee": 100000
}

Broadcasted JSON

{
"senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
"authorPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
"data":
[
    {
        "type": "string",
        "value": "obj:123:1234",
        "key": "objectId"
    }
],
"sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
"proofs": [ "2T7WQm5XW8cFHfiFkdDEic9oNiT7aFiH3TyKkARERopr1VJvzRKqHAVnQ3eiYZ3uYN8uQnPopQEH4XV8z5SgSwsf" ],
"author": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
"fee": 100000,
"id": "7dMMCQNTusahZ7DWtNGjCwAhRYpjaH1hsepRMbpn2BkD",
"type": 12,
"version": 1,
"timestamp": 1551680510183
}

13. SetScriptTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

chainId

Byte

version

Byte

script

  • (opt)

Bytes

name

Array[Byte]

description

  • (opt)

Array[Byte]

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 13,
    "version": 1,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "fee": 1000000,
    "name": "faucet",
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ=="
}

Broadcasted JSON

{
    "type": 13,
    "id": "HPDypnQJHJskN8kwszF8rck3E5tQiuiM1fEN42w6PLmt",
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3",
    "fee": 1000000,
    "timestamp": 1545986757233,
    "proofs": [ "2QiGYS2dqh8QyN7Vu2tAYaioX5WM6rTSDPGbt4zrWS7QKTzojmR2kjppvGNj4tDPsYPbcDunqBaqhaudLyMeGFgG" ],
    "chainId": 84,
    "version": 1,
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==",
    "name": "faucet",
    "description": "",
    "height": 3805
}

15. SetAssetScriptTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

chainId

Byte

assetId

ByteStr

script

  • (opt)

Bytes

password

  • (opt)

String

height

JSON для вызова метода sign

{
    "type": 15,
    "version": 1,
    "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB",
    "password": "",
    "fee": 100000000,
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==",
    "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg"
}

Broadcasted JSON

{
    "type": 15,
    "id": "CQpEM9AEDvgxKfgWLH2HxE82iAzpXrtqsDDcgZGPAF9J",
    "sender": "3N65yEf31ojBZUvpu4LCo7n8D73juFtheUJ",
    "senderPublicKey": "C1ADP1tNGuSLTiQrfNRPhgXx59nCrwrZFRV4AHpfKBpZ",
    "fee": 100000000,
    "timestamp": 1549448710502,
    "proofs": [ "64eodpuXQjaKQQ4GJBaBrqiBtmkjSxseKC97gn6EwB5kZtMr18mAUHPRkZaHJeJxaDyLzGEZKqhYoUknWfNhXnkf" ],
    "version": 1,
    "chainId": 84,
    "assetId": "DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB",
    "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==",
    "height": 61895
}

101. GenesisPermitTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

fee

Long

timestamp

Long

signature

ByteStr

target

ByteStr

role

String

height

102. PermitTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

target

ByteStr

PermissionOp

PermissionOp

opType

String

role

String

dueTimestamp

  • (opt)

Option[Long]

password

  • (opt)

String

height

JSON для вызова метода sign

{
   "type":102,
   "sender":"3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
   "password": "",
   "senderPublicKey":"4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
   "fee":0,
   "proofs":[""],
   "target":"3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL",
   "opType":"add",
   "role":"contract_developer",
   "dueTimestamp":null
 }

Broadcasted JSON

{
  "senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
  "role": "contract_developer",
  "sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
  "proofs": [
    "5ABJCRTKGo6jmDZCRWcLQc257CCeczmcjmtfJmbBE7TP3KsVkwvisH9kEkfYPckVCzEMKZTCd3LKAPcN8o4Git3j"
  ],
  "fee": 0,
  "opType": "add",
  "id": "8zVUH7nsDCcpwyfxiq8DCTgqL7Q23FW1KWepB9EZcFG6",
  "type": 102,
  "dueTimestamp": null,
  "timestamp": 1559048837487,
  "target": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL"
}

103. CreateContractTransaction

Предупреждение

Байтовое представление транзакции после подписания не должно превышать размер в 150 КБ.

В поле contractVersion указывается версия контракта, значение 1 - для нового контракта, значение 2 - для обновленного контракта. Контракт обновляется при помощи 107 транзакции. При создании контракта автоматически создается транзакция 104, вызывающая контракт для его проверки. Если контракт не выполнился или выполнился с ошибкой, то транзакции 103 и 104 отбрасываются и не попадают в блок.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size(Bytes)

type

Byte

1

id

Byte

1

sender

PublicKeyAccount

3264

senderPublicKey

PublicKeyAccount

3264

password

  • (opt)

String

32767

fee

Long

8

timestamp

  • (opt)

Long

8

proofs

List[ByteStr]

32767

version

Byte

1

contractVersion

Byte

1

image

Array[Bytes]

32767

imageHash

Array[Bytes]

32767

contractName

Array[Bytes]

32767

params

List[DataEntry[_]]

32767

height

8

JSON для вызова метода sign

{
  "fee": 100000000,
  "image": "stateful-increment-contract:latest",
  "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
  "contractName": "stateful-increment-contract",
  "sender": "3PudkbvjV1nPj1TkuuRahh4sGdgfr4YAUV2",
  "password": "",
  "params": [],
  "type": 103,
  "version": 1,
  "contractVersion": 1
 }

Broadcasted JSON

{
    "type": 103,
    "id": "ULcq9R7PvUB2yPMrmBdxoTi3bcRmQPT3JDLLLZVj4Ky",
    "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
    "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
    "fee": 500000,
    "timestamp": 1550591678479,
    "proofs": [ "yecRFZm9iBLyDy93bDVaNo1PR5Qkkic7196GAgUt9TNH1cnQphq4yGQQ8Fxj4BYA4TaqYVw5qxtWzGMPQyVeKYv" ],
    "version": 1,
    "image": "stateful-increment-contract:latest",
    "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
    "contractName": "stateful-increment-contract",
    "params": [],
    "height": 1619
}

104. CallContractTransaction

Предупреждение

Байтовое представление транзакции после подписания не должно превышать размер в 150 КБ.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size(Bytes)

type

Byte

1

id

Byte

1

sender

PublicKeyAccount

3264

senderPublicKey

PublicKeyAccount

3264

fee

Long

8

timestamp

  • (opt)

Long

8

proofs

List[ByteStr]

32767

version

Byte

1

contractId

ByteStr

32767

params

List[DataEntry[_]]

32767

height

8

password

  • (opt)

String

32767

JSON для вызова метода sign

{
    "contractId": "2sqPS2VAKmK77FoNakw1VtDTCbDSa7nqh5wTXvJeYGo2",
    "fee": 10,
    "sender": "3PKyW5FSn4fmdrLcUnDMRHVyoDBxybRgP58",
    "password": "",
    "type": 104,
    "params":
    [
        {
           "type": "integer",
           "key": "a",
           "value": 1
        },
        {
           "type": "integer",
           "key": "b",
           "value": 100

        }
    ],
    "version": 1
}

Broadcasted JSON

{
    "type": 104,
    "id": "9fBrL2n5TN473g1gNfoZqaAqAsAJCuHRHYxZpLexL3VP",
    "sender": "3PKyW5FSn4fmdrLcUnDMRHVyoDBxybRgP58",
    "senderPublicKey": "2YvzcVLrqLCqouVrFZynjfotEuPNV9GrdauNpgdWXLsq",
    "fee": 10,
    "timestamp": 1549365736923,
    "proofs": [ "2q4cTBhDkEDkFxr7iYaHPAv1dzaKo5rDaTxPF5VHryyYTXxTPvN9Wb3YrsDYixKiUPXBnAyXzEcnKPFRCW9xVp4v" ],
    "version": 1,
    "contractId": "2sqPS2VAKmK77FoNakw1VtDTCbDSa7nqh5wTXvJeYGo2",
    "params":
    [
        {
        "key": "a",
        "type": "integer",
        "value": 1
        },
        {
        "key": "b",
        "type": "integer",
        "value": 100
        }
    ]
}

105. ExecutedContractTransaction

Предупреждение

Байтовое представление транзакции после подписания не должно превышать размер в 150 КБ.

Field

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

Long

proofs

List[ByteStr]

version

Byte

tx

ExecutableTransaction

results

List[DataEntry[_]]

height

password

  • (opt)

String

Broadcasted JSON

{
    "type": 105,
    "id": "38GmSVC5s8Sjeybzfe9RQ6p1Mb6ajb8LYJDcep8G8Umj",
    "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
    "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
    "password": "",
    "fee": 500000,
    "timestamp": 1550591780234,
    "proofs": [ "5whBipAWQgFvm3myNZe6GDd9Ky8199C9qNxLBHqDNmVAUJW9gLf7t9LBQDi68CKT57dzmnPJpJkrwKh2HBSwUer6" ],
    "version": 1,
    "tx":
         {
            "type": 103,
            "id": "ULcq9R7PvUB2yPMrmBdxoTi3bcRmQPT3JDLLLZVj4Ky",
            "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
            "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
            "fee": 500000,
            "timestamp": 1550591678479,
            "proofs": [ "yecRFZm9iBLyDy93bDVaNo1PR5Qkkic7196GAgUt9TNH1cnQphq4yGQQ8Fxj4BYA4TaqYVw5qxtWzGMPQyVeKYv" ],
            "version": 1,
            "image": "stateful-increment-contract:latest",
            "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
            "contractName": "stateful-increment-contract",
            "params": [],
            "height": 1619
          },
    "results": [],
    "height": 1619
}

106. DisableContractTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

contractId

ByteStr

height

password

  • (opt)

String

JSON для вызова метода sign

{
    "sender":"3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
    "password": "",
    "contractId":"Fz3wqAWWcPMT4M1q6H7crLKtToFJvbeLSvqjaU4ZwMpg",
    "fee":500000,
    "timestamp":1549474811381,
    "type":106
}

Broadcasted JSON

{
"type": 106,
"id": "8Nw34YbosEVhCx18pd81HqYac4C2pGjyLKck8NhSoGYH",
"sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
"senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
"fee": 500000,
"timestamp": 1549474811381,
"proofs": [ "5GqPQkuRvG6LPXgPoCr9FogAdmhAaMbyFb5UfjQPUKdSc6BLuQSz75LAWix1ok2Z6PC5ezPpjqzqnr15i3RQmaEc" ],
"version": 1,
"contractId": "Fz3wqAWWcPMT4M1q6H7crLKtToFJvbeLSvqjaU4ZwMpg",
"height": 1632
}

107. UpdateContractTransaction

Предупреждение

  • Байтовое представление транзакции после подписания не должно превышать размер в 150 КБ.

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

Size(Bytes)

type

Byte

1

id

Byte

1

sender

PublicKeyAccount

3264

senderPublicKey

PublicKeyAccount

3264

image

Array[Bytes]

32767

imageHash

Array[Bytes]

32767

fee

Long

8

timestamp

Long

8

proofs

List[ByteStr]

32767

version

Byte

1

contractId

ByteStr

32767

height

8

password

  • (opt)

String

32767

JSON для вызова метода sign

{
  "image" : "registry.wvservices.com/we-sc/tdm-increment3:1028.1",
  "sender" : "3Mxxz9pBYS5fJMARJNQmzYUHxiWAtvMzSRT",
  "password": "keyPass",
  "fee" : 100000000,
  "contractId" : "EnsihTUHSNAB9RcWXJbiWT98X3hYtCw3SBzK8nHQRCWA",
  "imageHash" : "0e5d280b9acf6efd8000184ad008757bb967b5266e9ebf476031fad1488c86a3",
  "type" : 107,
  "version" : 1
 }

Broadcasted JSON

{
 "senderPublicKey":"5qBRDm74WKR5xK7LPs8vCy9QjzzqK4KCb8PL36fm55S3kEi2XZETHFgMgp3D13AwgE8bBkYrzvEvQZuabMfEyJwW",
 "tx":
 {
 "senderPublicKey":"5qBRDm74WKR5xK7LPs8vCy9QjzzqK4KCb8PL36fm55S3kEi2XZETHFgMgp3D13AwgE8bBkYrzvEvQZuabMfEyJwW",
 "image":"registry.wvservices.com/we-sc/tdm-increment3:1028.1",
 "sender":"3Mxxz9pBYS5fJMARJNQmzYUHxiWAtvMzSRT",
 "proofs":["3tNsTyteeZrxEbVSv5zPT6dr247nXsVWR5v7Khx8spypgZQUdorCQZV2guTomutUTcyxhJUjNkQW4VmSgbCtgm1Z"],
 "fee":0,
 "contractId":"EnsihTUHSNAB9RcWXJbiWT98X3hYtCw3SBzK8nHQRCWA",
 "id":"HdZdhXVveMT1vYzGTviCoGQU3aH6ZS3YtFpYujWeGCH6",
 "imageHash":"17d72ca20bf9393eb4f4496fa2b8aa002e851908b77af1d5db6abc9b8eae0217",
 "type":107,"version":1,"timestamp":1572355661572},
 "sender":"3HfRBedCpWi3vEzFSKEZDFXkyNWbWLWQmmG",
 "proofs":["28ADV8miUVN5EFjhqeFj6MADSXYjbxA3TsxSwFVs18jXAsHVaBczvnyoUSaYJsjRNmaWgXbpbduccRxpKGTs6tro"],
 "fee":0,"id":"7niVY8mjzeKqLBePvhTxFRfLu7BmcwVfqaqtbWAN8AA2",
 "type":105,
 "version":1,
 "results":[],
 "timestamp":1572355666866
 }
}

110. GenesisRegisterNodeTransaction

Field

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

fee

Long

timestamp

Long

signature

Bytes

version

Byte

targetPubKey

height

111. RegisterNodeTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

version

Byte

targetPubKey

PublicKeyAccount

nodeName

String

opType

height

password

  • (opt)

String

JSON для вызова метода sign

{
"type": 111,
"opType": "add",
"sender":"3HYW75PpAeVukmbYo9PQ3mzSHdKUgEytUUz",
"password": "",
"targetPubKey": "apgJP9atQccdBPAgJPwH3NBVqYXrapgJP9atQccdBPAgJPwHapgJP9atQccdBPAgJPwHDKkh6A8",
"nodeName": "Node #1",
"fee": 500000,
"timestamp": 1111111111
}

112. CreatePolicyTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

policyName

String

recipients

Array[Byte]

owners

Array[Byte]

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

height

Long

description

String

password

  • (opt)

String

JSON для вызова метода sign

 {
  "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
  "policyName": "Policy# 7777",
  "password":"sfgKYBFCF@#$fsdf()*%",
  "recipients": [
    "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
    "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
    "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T",
        "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF",
        "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx"
  ],
  "fee": 15000000,
  "description": "Buy bitcoin by 1c",
  "owners": [
    "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
    "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
    "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T"
  ],
  "type": 112
}

113. UpdatePolicyTransaction

Field

JSON to sign

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

policyName

String

recipients

Array[Byte]

owners

Array[Byte]

fee

Long

timestamp

  • (opt)

Long

proofs

List[ByteStr]

height

Long

opType

description

String

password

  • (opt)

String

JSON для вызова метода sign

{
  "policyId": "7wphGbhqbmUgzuN5wzgqwqtViTiMdFezSa11fxRV58Lm",
  "password":"sfgKYBFCF@#$fsdf()*%",
  "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
  "proofs": [],
  "recipients": [
  "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
  "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
  "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T",
      "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF",
      "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx",
      "3NwJfjG5RpaDfxEhkwXgwD7oX21NMFCxJHL"
   ],
   "fee": 15000000,
   "opType": "add",
  "owners": [
    "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
    "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
    "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T"
  ],
  "type": 113,
 }

114. PolicyDataHashTransaction

Когда пользователь отправляет конфиденциальные данные в сеть при помощи POST /privacy/sendData, нода автоматически формирует транзакцию 114.

Field

Broadcasted JSON

Blockchain state

Type

type

Byte

id

Byte

sender

PublicKeyAccount

senderPublicKey

PublicKeyAccount

policyId

String

dataHash

String

fee

Long

timestamp

Long

proofs

List[ByteStr]

height

Long