Транзакции¶
В этом разделе приведено описание формата данных в транзакциях, а также структура хранения транзакций в блокчейн-платформе Waves Enterprise. Для некоторых типов транзакций введено версионирование.
Формат данных в транзакциях¶
Все транзакции используют поле timestamp
, содержащее временную метку в формате Unix Timestamp в миллисекундах.
Транзакции 3, 13, 14 и 112 используют текстовое поле description
, а транзакции 4 и 6 - текстовое поле attachment
.
Сообщения, отправляемые в этих полях транзакций, перед отправкой необходимо перевести в формат base58.
Поля «ключ-значение» секции data
транзакции 12 и секции params
транзакции 104 поддерживают 4 типа данных: string, integer, boolean, binary.
На странице проекта в GitHub доступны proto-файлы, определяющие формат ответа, возвращаемого нодой.
Структура хранения транзакций¶
Значения в json-запросах для подписания и отправки транзакций в блокчейн являются примерными.
Перед отправкой запроса на подписание транзакции проверьте соответствие параметров запроса актуальным данным.
Например, если вы отправляете транзакцию в Mainnet, необходимо убедиться, что вы указали правильный размер комиссии за транзакцию.
В противном случае транзакция не пройдет валидацию, и нода вернет ошибку 105 InvalidFee
.
Дополнительная информация о комиссиях за транзакции приведена в разделе Комиссии в сети «Waves Enterprise Mainnet»
№ |
Тип транзакции |
Описание |
---|---|---|
1 |
Первоначальная привязка баланса к адресам, создаваемым |
|
3 |
Выпуск токенов |
|
4 |
Перевод токенов |
|
5 |
Перевыпуск токенов |
|
6 |
Сжигание токенов |
|
8 |
Передача токенов в аренду |
|
9 |
Отмена аренды токенов |
|
10 |
Создание псевдонима |
|
11 |
Массовый перевод токенов. Указана минимальная комиссия |
|
12 |
Транзакция с данными в виде полей с парой ключ-значение. |
|
13 |
Транзакция, привязывающая скрипт с RIDE-контрактом к аккаунту |
|
14 |
Транзакция, подписывающая спонсорский ассет |
|
15 |
Транзакция, привязывающая скрипт с RIDE-контрактом к ассету |
|
101 |
Назначение первого администратора сети для дальнейшей раздачи прав |
|
102 |
Выдача/отзыв прав у аккаунта |
|
103 |
Создание Docker-контракта |
|
104 |
Вызов Docker-контракта |
|
105 |
Выполнение Docker-контракта |
|
106 |
Отключение Docker-контракта |
|
107 |
Обновление Docker-контракта |
|
110 |
Регистрация ноды в генезис-блоке при старте блокчейна |
|
111 |
Регистрация новой ноды в сети |
|
112 |
Создание группы доступа к конфиденциальным данным |
|
113 |
Изменение группы доступа |
|
114 |
Отправка в сеть хеша данных |
|
120 |
Упаковывание нескольких транзакций в одну для атомарного выполнения |
Важно
Транзакция 101 также предназначена для включения роли sender. Эта роль может быть выдана участникам как при помощи 101, так и 102 транзакции. Однако если хотя бы один участник не был назначен sender при помощи 101 транзакции, выдать эту роль при помощи 102 транзакции будет невозможно.
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] (base58) |
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 (base58) |
password |
+ (opt) |
String |
||
height |
+ |
|||
atomicBadge |
+ |
+ |
+ |
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) |
+ |
+ |
(base58) |
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 }
]
}
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,
"height": 1190
}
12. DataTransaction¶
Предупреждение
Транзакция имеет ограничения:
Количество данных в секции «data» передаваемого JSON должно быть не более 100 пар
"key":"value"
,"data": [ { "key": "objectId", "type": "string", "value": "obj:123:1234" }, {...} ]
Байтовое представление транзакции после подписания не должно превышать размер в 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] (base58) |
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
}
14. SponsorshipTransaction¶
Field |
JSON to sign |
Broadcasted JSON |
Blockchain state |
Type |
---|---|---|---|---|
type |
+ |
+ |
+ |
Byte |
id |
+ |
Byte |
||
sender |
+ |
+ |
PublicKeyAccount |
|
senderPublicKey |
+ |
+ |
PublicKeyAccount |
|
assetId |
+ (opt) |
+ |
+ |
ByteStr |
fee |
+ |
+ |
+ |
Long |
isEnabled |
+ |
+ |
+ |
Boolean |
timestamp |
+ (opt) |
+ |
+ |
Long |
proofs |
+ |
+ |
List[ByteStr] |
|
chainId |
+ |
+ |
Byte |
|
version |
+ |
+ |
+ |
Byte |
script |
+ (opt) |
+ |
+ |
Bytes |
name |
+ |
+ |
+ |
Array[Byte] |
description |
+ (opt) |
+ |
+ |
Array[Byte] (base58) |
password |
+ (opt) |
String |
||
height |
+ |
JSON для вызова метода sign
{
"sender": "3JWDUsqyJEkVa1aivNPP8VCAa5zGuxiwD9t",
"assetId": "G16FvJk9vabwxjQswh9CQAhbZzn3QrwqWjwnZB3qNVox",
"fee": 100000000,
"isEnabled": false,
"type": 14,
"password": "1234",
"version": 1
}
Broadcasted JSON
{
"type": 14,
"id": "Ht6kpnQJHJskN8kwszF8rck3E5tQiuiM1fEN42wGfdk7",
"sender": "3JWDUsqyJEkVa1aivNPP8VCAa5zGuxiwD9t",
"senderPublicKey": "Gt55fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUophy89",
"fee": 100000000,
"assetId": "G16FvJk9vabwxjQswh9CQAhbZzn3QrwqWjwnZB3qNVox",
"timestamp": 1545986757233,
"proofs": [ "5TfgYS2dqh8QyN7Vu2tAYaioX5WM6rTSDPGbt4zrWS7QKTzojmR2kjppvGNj4tDPsYPbcDunqBaqhaudLyMeGFh7" ],
"chainId": 84,
"version": 1,
"isEnabled": false,
"height": 3865
}
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 |
+ |
|||
atomicBadge |
+ |
+ |
+ |
JSON для вызова метода sign
{
"type": 102,
"sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG",
"password": "",
"senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g",
"fee": 0,
"target": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL",
"opType": "add",
"role": "contract_developer",
"dueTimestamp": null,
"version": 1,
}
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 КБ.
Поле feeAssetId
опционально и используется только для gRPC контрактов (значение поля version = 2
).
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 |
feeAssetId |
+ (opt) |
Byte |
1 |
||
image |
+ |
+ |
+ |
Array[Bytes] |
32767 |
imageHash |
+ |
+ |
+ |
Array[Bytes] |
32767 |
contractName |
+ |
+ |
+ |
Array[Bytes] |
32767 |
params |
+ |
+ |
+ |
List[DataEntry[_]] |
32767 |
height |
+ |
8 |
|||
atomicBadge |
+ |
+ |
+ |
32767 |
JSON для вызова метода sign
{
"fee": 100000000,
"image": "stateful-increment-contract:latest",
"imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65",
"contractName": "stateful-increment-contract",
"sender": "3PudkbvjV1nPj1TkuuRahh4sGdgfr4YAUV2",
"password": "",
"params": [],
"type": 103,
"version": 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 КБ.
В поле contractVersion
указывается версия контракта, значение 1
- для нового контракта, значение 2
- для обновленного контракта. Данное поле доступно только для второй версии транзакции - "version": 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 |
|
fee |
+ |
+ |
+ |
Long |
8 |
timestamp |
+ (opt) |
+ |
+ |
Long |
8 |
proofs |
+ |
+ |
List[ByteStr] |
32767 |
|
version |
+ |
+ |
+ |
Byte |
1 |
contractVersion |
+ |
+ |
+ |
Byte |
1 |
contractId |
+ |
+ |
+ |
ByteStr |
32767 |
params |
+ |
+ |
+ |
List[DataEntry[_]] |
32767 |
height |
+ |
8 |
|||
password |
+ (opt) |
String |
32767 |
||
atomicBadge |
+ |
+ |
+ |
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": 2,
"contractVersion": 1
}
Broadcasted JSON
{
"type": 104,
"id": "9fBrL2n5TN473g1gNfoZqaAqAsAJCuHRHYxZpLexL3VP",
"sender": "3PKyW5FSn4fmdrLcUnDMRHVyoDBxybRgP58",
"senderPublicKey": "2YvzcVLrqLCqouVrFZynjfotEuPNV9GrdauNpgdWXLsq",
"fee": 10,
"timestamp": 1549365736923,
"proofs": [ "2q4cTBhDkEDkFxr7iYaHPAv1dzaKo5rDaTxPF5VHryyYTXxTPvN9Wb3YrsDYixKiUPXBnAyXzEcnKPFRCW9xVp4v" ],
"version": 2,
"contractVersion": 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 |
|
atomicBadge |
+ |
+ |
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 |
||
atomicBadge |
+ |
+ |
+ |
JSON для вызова метода sign
{
"sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
"password": "",
"contractId": "Fz3wqAWWcPMT4M1q6H7crLKtToFJvbeLSvqjaU4ZwMpg",
"fee": 500000,
"type": 106,
"version": 1,
}
Broadcasted JSON
{
"type": 106,
"id": "8Nw34YbosEVhCx18pd81HqYac4C2pGjyLKck8NhSoGYH",
"sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew",
"senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M",
"fee": 500000,
"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 |
+ (opt) |
+ |
+ |
Long |
8 |
proofs |
+ |
+ |
List[ByteStr] |
32767 |
|
version |
+ |
+ |
+ |
Byte |
1 |
contractId |
+ |
+ |
+ |
ByteStr |
32767 |
height |
+ |
8 |
|||
password |
+ (opt) |
String |
32767 |
||
atomicBadge |
+ |
+ |
+ |
32767 |
JSON для вызова метода sign
{
"image" : "registry.wvservices.com/we-sc/tdm-increment3:1028.1",
"sender" : "3Mxxz9pBYS5fJMARJNQmzYUHxiWAtvMzSRT",
"password": "",
"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,
}
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 (base58) |
password |
+ (opt) |
String |
||
version |
+ |
+ |
+ |
Byte |
atomicBadge |
+ |
+ |
+ |
JSON для вызова метода sign
{
"sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"policyName": "Policy# 7777",
"password":"[email protected]#$fsdf()*%",
"recipients": [
"3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
"3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T",
"3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF",
"3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx"
],
"fee": 15000000,
"description": "Buy bitcoin by 1c",
"owners": [
"3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
"3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T"
],
"type": 112,
"version": 1,
}
113. UpdatePolicyTransaction¶
Field |
JSON to sign |
Broadcasted JSON |
Blockchain state |
Type |
---|---|---|---|---|
type |
+ |
+ |
+ |
Byte |
id |
+ |
+ |
Byte |
|
sender |
+ |
+ |
+ |
PublicKeyAccount |
senderPublicKey |
+ |
+ |
PublicKeyAccount |
|
policyId |
+ |
+ |
+ |
String |
recipients |
+ |
+ |
+ |
Array[Byte] |
owners |
+ |
+ |
+ |
Array[Byte] |
fee |
+ |
+ |
+ |
Long |
timestamp |
+ |
+ |
Long |
|
proofs |
+ |
+ |
List[ByteStr] |
|
height |
+ |
Long |
||
opType |
+ |
+ |
+ |
|
description |
+ |
+ |
+ |
String (base58) |
password |
+ |
String |
||
version |
+ |
+ |
+ |
Byte |
atomicBadge |
+ |
+ |
+ |
JSON для вызова метода sign
{
"policyId": "7wphGbhqbmUgzuN5wzgqwqtViTiMdFezSa11fxRV58Lm",
"password":"[email protected]#$fsdf()*%",
"sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"recipients": [
"3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
"3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T",
"3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF",
"3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx",
"3NwJfjG5RpaDfxEhkwXgwD7oX21NMFCxJHL"
],
"fee": 15000000,
"opType": "add",
"owners": [
"3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn",
"3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T"
],
"type": 113,
"version": 1,
}
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 |
|
version |
+ |
+ |
Byte |
atomicBadge |
+ |
+ |
120. AtomicTransaction¶
Транзакция помещает в контейнер другие транзакции для их атомарного выполнения. Транзакция поддерживает следующие типы транзакций:
4 Трансфер ассета, версия 3
102 Добавление / удаление прав, версия 2
103 Создание контракта, версия 3
104 Вызов контракта, версия 4
105 Исполнение контракта, версии 1 и 2
106 Деактивация контракта, версия 3
107 Обновление контракта, версия 3
112 Создание политики приватности, версия 3
113 Обновление политики приватности, версия 3
114 Добавление приватных данных, версия 3
Field |
JSON to sign |
Broadcasted JSON |
Blockchain state |
Type |
---|---|---|---|---|
type |
+ |
+ |
+ |
Byte |
id |
+ |
+ |
Byte |
|
sender |
+ |
+ |
+ |
PublicKeyAccount |
senderPublicKey |
+ |
+ |
PublicKeyAccount |
|
fee |
+ |
+ |
+ |
Long |
timestamp |
+ |
+ |
Long |
|
proofs |
+ |
+ |
List[ByteStr] |
|
height |
+ |
Long |
||
transactions |
+ |
+ |
+ |
|
miner |
+ |
+ |
String |
|
password |
+ |
String |
||
version |
+ |
+ |
Byte |
JSON для вызова метода sign
{
"sender": sender_0,
"transactions": [
signed_transfer_tx,
signed_transfer_tx2
],
"type": 120,
"version": 1,
"password":"lskjbJJk$%^#298",
"fee": 0,
}
Пример запроса
{'sender': '3MufokZsFzaf7heTV1yreUtm1uoJXPoFzdP',
'transactions': [
{'senderPublicKey': '5nGi8XoiGjjyjbPmjLNy1k2bus4yXLaeuA3Hb7BikwD9tboFwFXJYUmto5Joox76c3pp2Mr1LjgodUJuxryCJofQ', 'amount': 10, 'fee': 10000000, 'type': 4, 'version': 3, 'atomicBadge': {'trustedSender': '3MufokZsFzaf7heTV1yreUtm1uoJXPoFzdP'}, 'attachment': '', 'sender': '3Mv79dyPX2cvLtRXn1MDDWiCZMBrkw9d97c', 'feeAssetId': None, 'proofs': ['XQ7iAqkarmm14AATc2Y9cR3Z9WnirsH4kH6RUL4QdT82rEwsmWBbBfWrADLE9o4cp2VR39W6b3vdrwFgg1dX7m3'], 'assetId': None, 'recipient': '3MufokZsFzaf7heTV1yreUtm1uoJXPoFzdP', 'id': 'FZ59wAZnkFUqXjn61vvyj59fRa3cuS6nzuW3vqoRMsM5', 'timestamp': 1602857131666}, {'senderPublicKey': '56rV5kcR9SBsxQ9LtNrmp6V72S4BDkZUJaA6ujZswDneDmCTmeSG6UE2FQP1rPXdfpWQNunRw4aijGXxoK3o4puj', 'amount': 20, 'fee': 10000000, 'type': 4, 'version': 3, 'atomicBadge': {'trustedSender': '3MufokZsFzaf7heTV1yreUtm1uoJXPoFzdP'}, 'attachment': '', 'sender': '3MufokZsFzaf7heTV1yreUtm1uoJXPoFzdP', 'feeAssetId': None, 'proofs': ['5KaXUFan2JD6VsJeGNyBCXEwqCjUF1nASAzxjnPZzBydXA5RJyXQGaL6N9MQ8GDNori1nXw5FsDLBqc3CPM3ezsk'], 'assetId': None, 'recipient': '3Mv79dyPX2cvLtRXn1MDDWiCZMBrkw9d97c', 'id': '8GTqE1cc6zTVxYgQxgHJWJitVsDFRc6GmU5FJcnp5gu2', 'timestamp': 1602857132314}
],
'type': 120,
'version': 1}