Technical description of the platform
Description of transactions¶
The Waves Enterprise blockchain platform supports 28 types of transactions. Each of them contains its own set of data to be sent into the blockchain.
Requests and responses passed via the node REST API interface within the framework of each transaction, have JSON format. Requests and responses passed via the node gRPC interface, are defined by corresponding proto schemes. JSON models of transaction requests and responses are stated below.
Hint
In case you have protected the keypair of your node with a password while generating the account, set the password of your keypair in the password
field of a transaction.
1. Genesis Transaction¶
First transaction of a new blockchain which performs first attachment of balance to addresses of created nodes.
This transaction does not require signing, that is why it is only broadcasted. Transaction has the only version.
3. Issue Transaction¶
A transaction initiating issue of tokens.
JSON:
Signing:
{
"type": 3,
"version":2,
"name": "Test Asset 1",
"quantity": 100000000000,
"description": "Some description",
"sender": "3FSCKyfFo3566zwiJjSFLBwKvd826KXUaqR",
"password": "",
"decimals": 8,
"reissuable": true,
"fee": 100000000
}
Broadcasting:
{
"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. Transfer Transaction¶
A transaction of transfer of tokens from one address to another.
JSON:
Signing:
{ "type": 4, "version": 2, "sender": "3M6dRZXaJY9oMA3fJKhMALyYKt13D1aimZX", "password": "", "recipient": "3M6dRZXaJY9oMA3fJKhMALyYKt13D1aimZX", "amount": 40000000000, "fee": 100000 }Broadcasting:
{ "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 }Version 3
Signing:
{ "type": 4, "version": 3, "sender": "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "password": "", "recipient": "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF", "amount": 40000000000, "fee": 10000000 }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "amount" : 10, "fee" : 10000000, "type" : 4, "version" : 3, "atomicBadge" : { "trustedSender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx" }, "attachment" : "", "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "2vbAJmwzQw2FCtozcewxJVfxoHxf97BTNdGuaeSATV4vEHZ3XYA4Z7nXGsSnf18aesnAWTKWCfzwM5yGpWEyGM7f" ], "assetId" : null, "recipient" : "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF", "id" : "2wCEMREFbgk318hFFaNGsgFzyjZHuCrtwSnpK35qhiw4", "timestamp" : 1619186861204, "height" : 861644 }
5. Reissue Transaction¶
Transaction for token re-issue.
JSON:
Signing:
{ "type": 5, "version":2, "quantity": 556105, "sender": "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "password": "", "assetId": "6UAMZA6RshxyPvt9W7aoWiUiB6N73yLQMMfiRQYXdWZh", "reissuable": true, "fee": 100000000 }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "quantity" : 556105, "fee" : 100000000, "type" : 5, "version" : 2, "reissuable" : true, "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "chainId" : 86, "proofs" : [ "5ahD78wciu8YTsLoxo1XRghJWAGG7At7ePiBWTNzdkvX7cViRCKRLjjjPTGCoAH2mdGQK9i1JiY1wh18eh4h7pGy" ], "assetId" : "6UAMZA6RshxyPvt9W7aoWiUiB6N73yLQMMfiRQYXdWZh", "id" : "8T9jJUusN5KBexxDUX1XBjoDydXGP34zWH7Qvp5mnmES", "timestamp" : 1619187184206, "height" : 861645 }
6. Burn Transaction¶
Transaction for burning of tokens: decreases amount of tokens at the sender address, and, with this, decreases a total amount of tokens in the blockchain. The burned tokens cannot be restored.
JSON:
Signing:
{ "type": 6, "version": 2, "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "password": "", "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg", "quantity": 1000, "fee": 100000, "attachment": "string" }Broadcasting:
{ "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. Lease Transaction¶
Leasing of tokens to another address. The tokens in leasing are taken into account in a generating balance of a recipient after 1000 blocks.
Leasing of tokens can be carried out for increasing of probability of node appointment as a next round miner. As a rule, a recipient shares his revenue for block generation with an address which has granted him tokens for leasing.
Tokens in leasing remain blocked at a sender address. Leasing can be cancelled with the use of leasing cancel transaction.
JSON:
Signing:
{ "type": 8, "version": 2, "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "password": "", "recipient": "3N1ksBqc6uSksdiYjCzMtvEpiHhS1JjkbPh", "amount": 1000, "fee": 100000 }Broadcasting:
{ "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3", "amount": 1000, "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "proofs": [ "5jvmWKmU89HnxXFXNAd9X41zmiB5fSGoXMirsaJ9tNeyiCAJmjm7MR48g789VucckQw2UExaVXfhsdEBuUrchvrq" ], "fee": 100000, "recipient": "3N1ksBqc6uSksdiYjCzMtvEpiHhS1JjkbPh", "id": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp", "type": 8, "version": 2, "timestamp": 1551449299545, "height": 1190 }
9. LeaseCancel Transaction¶
Cancelling of leasing of tokens that have been leased with the use of a transaction with a definite ID. The lease
structure of this transaction is not filled: the node fills it automatically upon obtaining of transaction data.
JSON:
Signing:
{ "type": 9, "version": 2, "fee": 100000, "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "password": "", "txId": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp" }Broadcasting:
{ "senderPublicKey": "Fbt5fKHesnQG2CXmsKf4TC8v9oB7bsy2AY56CUopa6H3", "leaseId": "6Tn7ir9MycHW6Gq2F2dGok2stokSwXJadPh4hW8eZ8Sp", "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "chainId": 84, "proofs": [ "2Gns72hraH5yay3eiWeyHQEA1wTqiiAztaLjHinEYX91FEv62HFW38Hq89GnsEJFHUvo9KHYtBBrb8hgTA9wN7DM" ], "fee": 100000, "id": "9vhxB2ZDQcqiumhQbCPnAoPBLuir727qgJhFeBNmPwmu", "type": 9, "version": 2, "timestamp": 1551449835205, "height": 1190 }
10. CreateAlias Transaction¶
Creation of an alias for a sender address. An alias can be used in transactions as a recipient identifier.
JSON:
Signing:
{ "type": 10, "version": 2, "fee": 100000000, "sender": "3NwTvbW7TMckBc785XjtGTUfHmcesaWBe1A", "password": "", "alias": "1@k1_kv29" }Broadcasting:
{ "senderPublicKey" : "C4eRfdUFaZMRkfUp91bYr7uMgdBRnUfAxuAjetxmK7KY", "sender" : "3NwTvbW7TMckBc785XjtGTUfHmcesaWBe1A", "proofs" : [ "3fhJztBNnTDjppmqgi4GugAYo1aS1mzZhVhPdnNsqYqCEyLLHfzgb75psRPntHD4uBZgk8jByFP9mwwx2Ezsdg59" ], "fee" : 100000000, "alias" : "1@k1_kv29", "id" : "AavgVzV7avPMpERro6YqikwFESAgG2wViprtPJUtXP6F", "type" : 10, "version" : 2, "timestamp" : 1608737444468, "height" : 595942 }
11. MassTransfer Transaction¶
Transfer of tokens to several recipients (1 - 100 addresses). A transaction fee depends on a number of addresses.
JSON:
Signing:
{ "type": 11, "sender": "3NydXoTq3UgUW5rxsNwEMs1iwbbvVEwxoHU", "password": "", "fee": 30000000, "version": 2, "transfers": [ { "recipient": "3MtHszoTn399NfsH3v5foeEXRRrchEVtTRB", "amount": 100000 }, { "recipient": "3N7BA6J9VUBfBRutuMyjF4yKTUEtrRFfHMc", "amount": 100000 } ] }Broadcasting:
{ "senderPublicKey" : "AMhAY8RMy5QsPqj58xeMY3fJxTZKx71QztsjDzqWprHo", "fee" : 30000000, "type" : 11, "transferCount" : 4, "version" : 2, "totalAmount" : 400000000, "attachment" : "", "sender" : "3NydXoTq3UgUW5rxsNwEMs1iwbbvVEwxoHU", "feeAssetId" : "8bec1mhqTiveMeRTHgYr6az12XdqBBtpeV3ZpXMRHfSB", "proofs" : [ "21hhAMmwze6nLLQ9K6AoU6scek9Sk5KabR4VggGfdTVFHonfMGwVTse6qL2f8zR8DRm7RckMaikiYRt5XxWEKWcA" ], "assetId" : "8bec1mhqTiveMeRTHgYr6az12XdqBBtpeV3ZpXMRHfSB", "transfers" : [ { "recipient" : "3NqEjAkFVzem9CGa3bEPhakQc1Sm2G8gAFU", "amount" : 100000000 }, { "recipient" : "3NzkzibVRkKUzaRzjUxndpTPvoBzQ3iLng3", "amount" : 100000000 }, { "recipient" : "3Nnx8cX3UiyfQeC3YQKVRqVr2ewSxrvaDyB", "amount" : 100000000 }, { "recipient" : "3NzC4Ex91VBQKfJHPiGhuPEomLg48NMi2ZF", "amount" : 100000000 } ], "id" : "EvnxFxdYhYxHgQSMhkyLaqgyUDZdnBknfAWEXyqEHt97", "timestamp" : 1627643861044, "height" : 1076874 }
12. Data Transaction¶
Transaction for adding, editing and removing of entries in an address data storage. An address data storage contains data in the ‘key:value’ format.
The size of the address data repository is unlimited, but up to 100 new “key:value” pairs can be added with a single data transaction. Also the byte representation of the transaction after signing must not exceed 150 kilobytes.
If the data author (the address in the author
field) matches the transaction sender (the address in the sender
field), the senderPublicKey
parameter is not required when signing the transaction.
Data structure of a query for transaction signing:
JSON:
Signing:
{ "type": 12, "version": 2, "sender": "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "password": "", "senderPublicKey": "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "author": "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "data": [ ... ], "fee": 150000000 }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "data" : [ ... ], "author" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "fee" : 150000000, "type" : 12, "version" : 2, "authorPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "4wFNmn32NZqGwP4D4aAxCMyigGEVZLWftqi919pHAK7mCj3sFw7Ekf76g2rr51PZuk5sLwzjkKiZArQvWY8uEGqk" ], "id" : "GcDy84oTFf5NQzDtixkfUqiFNZwMaN2vfXqxsbGxumfo", "timestamp" : 1619187166499, "height" : 861644 }
13. SetScript Transaction¶
A transaction to bind the script to an account or delete the script. An account with a script tied to it is called a smart account.
The script allows you to verify transactions transmitted on behalf of an account without using the blockchain transaction verification mechanism.
JSON:
Signing:
{ "type": 13, "version": 1, "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "password": "", "fee": 1000000, "name": "faucet", "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==" }Broadcasting:
{ "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. Sponsorship Transaction¶
A transaction that establishes or cancels a sponsorship.
The sponsoring mechanism allows addresses to pay fees for script call transactions and transfer transactions in the sponsor asset, replacing WEST.
JSON:
Signing:
{ "sender": "3JWDUsqyJEkVa1aivNPP8VCAa5zGuxiwD9t", "assetId": "G16FvJk9vabwxjQswh9CQAhbZzn3QrwqWjwnZB3qNVox", "fee": 100000000, "isEnabled": false, "type": 14, "password": "1234", "version": 1 }Broadcasting:
{ "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. SetAssetScript Transaction¶
A transaction to install or remove an asset script for an address. Asset script allows to verify transactions involving this or that asset (token) without using the blockchain transaction verification mechanism.
JSON:
Signing:
{ "type": 15, "version": 1, "sender": "3N9vL3apA4j2L5PojHW8TYmfHx9Lo2ZaKPB", "password": "", "fee": 100000000, "script": "base64:AQQAAAAHJG1hdGNoMAUAAAACdHgG+RXSzQ==", "assetId": "7bE3JPwZC3QcN9edctFrLAKYysjfMEk1SDjZx5gitSGg" }Broadcasting:
{ "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. GenesisPermission Transaction¶
A transaction to assign the first network administrator who distributes permissions to other participants.
102. Permission Transaction¶
Issuing or revoking a participant’s role. Only a participant with the permissioner permission can send 102 transactions to the blockchain.
Possible permissions for the role
field:
permissioner
sender
blacklister
miner
issuer
contract_developer
connection_manager
contract_validator
banned
For a description of the permissions, see the article Permissions.
JSON:
Signing:
{ "type": 102, "sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG", "password": "", "senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g", "fee": 0, "target": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL", "opType": "add", "role": "contract_developer", "dueTimestamp": null, "version": 1 }Broadcasting:
{ "senderPublicKey": "4WnvQPit2Di1iYXDgDcXnJZ5yroKW54vauNoxdNeMi2g", "role": "contract_developer", "sender": "3GLWx8yUFcNSL3DER8kZyE4TpyAyNiEYsKG", "proofs": [ "5ABJCRTKGo6jmDZCRWcLQc257CCeczmcjmtfJmbBE7TP3KsVkwvisH9kEkfYPckVCzEMKZTCd3LKAPcN8o4Git3j" ], "fee": 0, "opType": "add", "id": "8zVUH7nsDCcpwyfxiq8DCTgqL7Q23FW1KWepB9EZcFG6", "type": 102, "dueTimestamp": null, "timestamp": 1559048837487, "target": "3GPtj5osoYqHpyfmsFv7BMiyKsVzbG1ykfL" }
103. CreateContract Transaction¶
Creating a smart contract. The byte representation of this transaction after it is signed must not exceed 150 kilobytes.
The feeAssetId
field of this transaction is optional and is only used for gRPC-enabled smart contracts. The value of the version
field for this type of smart contracts is 2.
Transaction 103 can only be signed by a user with the role contract_developer.
JSON:
Signing:
{ "type": 103, "version": 2, "sender": "3NpN3HyHzGj7Ny1k5F9zMMQ2n54TZg86G9D", "password": "signing-key-password", "image": "registry.wavesenterprise.com/test-docker-repo/contract:v1.0.0", "contractName": "Your contract name", "imageHash": "573387bbf50cfdeda462054b8d85d6c24007f91044501250877392e43ff5ed50", "params": [ { "type": "string", "key": "test_key", "value": "test_value" } ], "fee": 100000000, "timestamp": 1651487626477, "feeAssetId": null }Broadcasting:
{ "id": "4WVhw3QdiinpE5QXDG7QfqLiLanM7ewBw4ChX4qyGjs2", "type": 103, "version": 2, "sender": "3NpN3HyHzGj7Ny1k5F9zMMQ2n54TZg86G9D", "senderPublicKey": "YNpp7chAaudMqEtSZZPyN4GYLJ5ZTXdjCXrQdszzuRp", "contractName": "Your contract name", "image": "registry.wavesenterprise.com/test-docker-repo/contract:v1.0.0", "imageHash": "573387bbf50cfdeda462054b8d85d6c24007f91044501250877392e43ff5ed50", "params": [ { "type": "string", "key": "test_key", "value": "test_value" } ], "fee": 100000000, "timestamp": 1651487626477, "feeAssetId": null, "proofs": [ "4vqLnpJRFpcDgM5vgi78DpZnVfqztsARHNb7Hbmq3mQBjS3SRnzFAiYjRvPazEVMhBM9cE4Rcp6H5K29kk75Uxyh" ] }Version 3
Signing:
{ "type": 103, "version": 3, "sender": "3NpN3HyHzGj7Ny1k5F9zMMQ2n54TZg86G9D", "password": "signing-key-password", "image": "registry.wavesenterprise.com/test-docker-repo/contract:v1.0.0", "contractName": "Your contract name", "imageHash": "573387bbf50cfdeda462054b8d85d6c24007f91044501250877392e43ff5ed50", "params": [ { "type": "string", "key": "test_key", "value": "test_value" } ], "fee": 100000000, "timestamp": 1651487626477, "feeAssetId": null, "atomicBadge": null }Broadcasting:
{ "id": "4WVhw3QdiinpE5QXDG7QfqLiLanM7ewBw4ChX4qyGjs2", "type": 103, "version": 3, "sender": "3NpN3HyHzGj7Ny1k5F9zMMQ2n54TZg86G9D", "senderPublicKey": "YNpp7chAaudMqEtSZZPyN4GYLJ5ZTXdjCXrQdszzuRp", "contractName": "Your contract name", "image": "registry.wavesenterprise.com/test-docker-repo/contract:v1.0.0", "imageHash": "573387bbf50cfdeda462054b8d85d6c24007f91044501250877392e43ff5ed50", "params": [ { "type": "string", "key": "test_key", "value": "test_value" } ], "fee": 100000000, "timestamp": 1651487626477, "feeAssetId": null, "atomicBadge": null, "proofs": [ "4vqLnpJRFpcDgM5vgi78DpZnVfqztsARHNb7Hbmq3mQBjS3SRnzFAiYjRvPazEVMhBM9cE4Rcp6H5K29kk75Uxyh" ] }Version 4
Signing:
{ "type": 103, "version": 4, "sender": "3NpN3HyHzGj7Ny1k5F9zMMQ2n54TZg86G9D", "password": "signing-key-password", "image": "registry.wavesenterprise.com/test-docker-repo/contract:v1.0.0", "contractName": "Your contract name", "imageHash": "573387bbf50cfdeda462054b8d85d6c24007f91044501250877392e43ff5ed50", "params": [ { "type": "string", "key": "test_key", "value": "test_value" } ], "fee": 100000000, "timestamp": 1651487626477, "feeAssetId": null, "atomicBadge": null, "validationPolicy": { "type": "majority" }, "apiVersion": "1.0" }Broadcasting:
{ "id": "4WVhw3QdiinpE5QXDG7QfqLiLanM7ewBw4ChX4qyGjs2", "type": 103, "version": 4, "sender": "3NpN3HyHzGj7Ny1k5F9zMMQ2n54TZg86G9D", "senderPublicKey": "YNpp7chAaudMqEtSZZPyN4GYLJ5ZTXdjCXrQdszzuRp", "contractName": "Your contract name", "image": "registry.wavesenterprise.com/test-docker-repo/contract:v1.0.0", "imageHash": "573387bbf50cfdeda462054b8d85d6c24007f91044501250877392e43ff5ed50", "params": [ { "type": "string", "key": "test_key", "value": "test_value" } ], "fee": 100000000, "timestamp": 1651487626477, "feeAssetId": null, "atomicBadge": null, "proofs": [ "4vqLnpJRFpcDgM5vgi78DpZnVfqztsARHNb7Hbmq3mQBjS3SRnzFAiYjRvPazEVMhBM9cE4Rcp6H5K29kk75Uxyh" ] }
The 4th version of this transaction configures validation of the execution results of the updated smart contract using the validationPolicy.type
field (see section Validation of smart contracts). Variants of validation policies:
any
- the general validation policy is kept in the network: to mine the updated smart contract, the miner signs the corresponding 105 transaction. Also, this parameter is set if there are no registered validators in the network.majority
- a transaction is considered valid if it is confirmed by the majority of validators: 2/3 of the total number of registered addresses with the contract_validator permission.majorityWithOneOf(List[Address])
- the transaction is considered valid if the majority of validators is collected, among which there is at least one of the addresses included in the parameter list. The addresses included in the list must have a valid contract_validator permission.
Warning
In case of using the majorityWithOneOf(List[Address])
validation policy, fill the address list, passing an empty list is not allowed.
In private networks, the 103 transaction allows to install Docker images of smart contracts not only from repositories stated in the docker-engine
section of the node configuration file. If you need to install a smart contract from a registry not included in the list of the configuration file, type the full address of a smart contract in the registry you have created in the name
field of the 103 transaction.
An example of a request to broadcast a smart contract from a not installed repository:
{
"senderPublicKey" : "CgqRPcPnexY533gCh2SSvBXh5bca1qMs7KFGntawHGww",
"image": "customregistry.com:5000/stateful-increment-contract:latest",
"fee" : 100000000,
"imageHash" : "ad6d0f8a61222794da15571749bc9db08e76b6a120fc1db90e393fc0ee9540d8",
"type" : 103,
"params" : [ {
"type" : "string",
"value" : "Value_here",
"key" : "data"
}, {
"type" : "integer",
"value" : 500,
"key" : "length"
} ],
"version" : 4,
"atomicBadge" : null,
"apiVersion" : "1.0",
"sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d",
"feeAssetId" : null,
"proofs" : [ "L521YncSMJDPqwBjQyS7m7Q6tseAw51nYE8iiPChEALx7S2WvpSosCVtWkXxh2ZqJ6LHkCvjVjRVuVs793kzjw8" ],
"contractName" : "grpc_validatable_statefull here_often",
"id" : "HSLdKYqLq4LcZpq9LPki8Yv4ZRkFapVyHEYw1vZW2MoG",
"validationPolicy" : {
"type" : "any"
},
"timestamp" : 1625732696641,
"height" : 1028130
}
104. CallContract Transaction¶
Calling a smart contract for execution. The byte representation of this transaction after it is signed must not exceed 150 kilobytes.
Signing of the transaction is performed by the initiator of the contract execution.
The contractVersion
field of the transaction specifies the contract version:
1
- for a new contract;2
- for an updated contract.
This field is only available for the transaction of the second version and older: if the version
field of the smart contract creation transaction is set to 2
or more. The contract is updated using the transaction 107.
If the contract is not executed or is executed with an error, then transactions 103 and 104 are deleted and do not enter the block.
JSON:
Signing:
{ "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 }Broadcasting:
{ "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 } ] }Version 3
Signing:
{ "contractId": "Dgk1hR7xRnDT1KJreaXCVtZLrnd5LJ8uUYtoZyQrV1LJ", "fee": 10000000, "sender": "3NpkC1FSW9xNfmAMuhRSRArLgnfyGyEry7w", "password": "", "type": 104, "params": [ { "type" : "string", "value" : "value", "key" : "data" }, { "type" : "integer", "value" : 500, "key" : "length" } ], "version": 3, "contractVersion": 1, }Broadcasting:
{ "senderPublicKey" : "9Kgnqqxr5MU3PNrLgf1dkZL2HH6LBktB5Pv9L1cVELi1", "fee" : 10000000, "type" : 104, "params" : [ { "type" : "string", "value" : "data_response", "key" : "action" }, { "type" : "string", "value" : "000008_regular_data_request_2m3SgcnQz9LXVi9ETy3CFHVGM1EyiqJi3vvRRQUM3oPp", "key" : "request_id" }, { "type" : "string", "value" : "76.33", "key" : "value" }, { "type" : "string", "value" : "1627678789267", "key" : "timestamp" } ], "version" : 3, "contractVersion" : 1, "sender" : "3NpkC1FSW9xNfmAMuhRSRArLgnfyGyEry7w", "feeAssetId" : null, "proofs" : [ "4aanqYjaTVNot8Fbz5ixjwKSdqS5x3DdvzxQ4WsTaPcftYdoFx99xwLC3UPN91VAtez4RTMzaYb1TECaVxHHT9AH" ], "contractId" : "Dgk1hR7xRnDT1KJreaXCVtZLrnd5LJ8uUYtoZyQrV1LJ", "id" : "55imLuEXyVpBXb1S64R5PRx9acQQHaEATPwYwUVpqjAT", "timestamp" : 1627678789267, "height" : 1076064 }Version 4
Signing:
{ "contractId": "HSLdKYqLq4LcZpq9LPki8Yv4ZRkFapVyHEYw1vZW2MoG", "fee": 10000000, "sender": "3PKyW5FSn4fmdrLcUnDMRHVyoDBxybRgP58", "password": "", "type": 104, "params": [ { "type" : "string", "value" : "value", "key" : "data" }, { "type" : "integer", "value" : 500, "key" : "length" } ], "version": 4, "contractVersion": 3, "atomicBadge" : null }Broadcasting:
{ "senderPublicKey" : "CgqRPcPnexY533gCh2SSvBXh5bca1qMs7KFGntawHGww", "fee" : 10000000, "type" : 104, "params" : [ { "type" : "string", "value" : "value", "key" : "data" }, { "type" : "integer", "value" : 500, "key" : "length" } ], "version" : 4, "contractVersion" : 3, "atomicBadge" : null, "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "feeAssetId" : null, "proofs" : [ "2bpALen4diR7DTFhNQCrZKPueCPds2gFFPxe1KVzQwfRuGaK6QfvtpN8oqaZMsStoEHAa5DrTkKM8AuzHPYyMPVP" ], "contractId" : "HSLdKYqLq4LcZpq9LPki8Yv4ZRkFapVyHEYw1vZW2MoG", "id" : "GBfibn8VjGmDS9ex4Nd4JNRLvDyvJjj8jLUUcbYwFTCf", "timestamp" : 1625732766458, "height" : 1028132 }
105. ExecutedContract Transaction¶
Writing of the result of smart contract execution to its state. The byte representation of this transaction after signing must not exceed 150 kilobytes.
Transaction 105 contains all fields (body) of transaction 103, 104 or 107 of the smart contract whose execution result must be written to its state (the tx
field). The result of the smart contract’s execution is entered into its stack from the corresponding parameters of the params
field of transaction 103 or 104.
The transaction is signed by the node that forms the block after sending the request to publish the transaction.
JSON:
Broadcasting:
{ "type": 105, "id": "38GmSVC5s8Sjeybzfe9RQ6p1Mb6ajb8LYJDcep8G8Umj", "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew", "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M", "password": "", "fee": 500000, "timestamp": 1550591780234, "proofs": [ "5whBipAWQgFvm3myNZe6GDd9Ky8199C9qNxLBHqDNmVAUJW9gLf7t9LBQDi68CKT57dzmnPJpJkrwKh2HBSwUer6" ], "version": 2, "tx": { "type": 103, "id": "ULcq9R7PvUB2yPMrmBdxoTi3bcRmQPT3JDLLLZVj4Ky", "sender": "3N3YTj1tNwn8XUJ8ptGKbPuEFNa9GFnhqew", "senderPublicKey": "3kW7vy6nPC59BXM67n5N56rhhAv38Dws5skqDsjMVT2M", "fee": 500000, "timestamp": 1550591678479, "proofs": [ "yecRFZm9iBLyDy93bDVaNo1PR5Qkkic7196GAgUt9TNH1cnQphq4yGQQ8Fxj4BYA4TaqYVw5qxtWzGMPQyVeKYv" ], "version": 2, "image": "stateful-increment-contract:latest", "imageHash": "7d3b915c82930dd79591aab040657338f64e5d8b842abe2d73d5c8f828584b65", "contractName": "stateful-increment-contract", "params": [], "height": 1619 }, "results": [], "height": 1619, "atomicBadge" : null }
106. DisableContract Transaction¶
Disabling of a smart contract. The byte representation of this transaction after it is signed must not exceed 150 kilobytes.
Transaction 106 can only be signed by a user with the role contract_developer.
JSON:
Signing:
{ "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "password": "", "contractId": "HKftkVDTcQp6kxdqVYNdzB9d4rhND4YRKxwJV1thMXcr", "fee": 1000000, "type": 106, "version": 2, }Broadcasting:
{ "senderPublicKey" : "CgqRPcPnexY533gCh2SSvBXh5bca1qMs7KFGntawHGww", "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "feeAssetId" : "7QpXWLGuaspzrMsESRaHTgksndq5mcvfbVrqBTuLbxuy", "proofs" : [ "3FKPGT8YbLVun5cffZi1sHkgr9JZVxkeN7z2kUqDVLfhB5CwMtCAfyStRz1tpZuriKsR3MaBqNfReGx5sM2qey8i" ], "fee" : 1000000, "contractId" : "HKftkVDTcQp6kxdqVYNdzB9d4rhND4YRKxwJV1thMXcr", "id" : "5hXuHs5HVhZSfek153t76HfW6egmCLdZmi5AeFzYBFN", "type" : 106, "version" : 2, "timestamp" : 1625648619321, "height" : 1025992 }Version 3
Signing:
{ "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "password": "", "contractId": "75PumcfCVxzV3v7RAPYQUwCtSpU21hxfaWFhureCRTLM", "fee": 1000000, "type": 106, "version": 3, "atomicBadge" : { "trustedSender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx" } }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "atomicBadge" : { "trustedSender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx" }, "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "22tK24qHhgbTDjtRmR86z3WeLLqLnqPvhUhQrz8ohfbCwQ9nrwmHESuT9aFuwABeBRJ7MfVob1FiJnqg3y2PHLSj" ], "fee" : 1000000, "contractId" : "75PumcfCVxzV3v7RAPYQUwCtSpU21hxfaWFhureCRTLM", "id" : "7opPrLd6x1hATRr9R5oXnEbYjYQzo5cn4Qpkiz12Mw9b", "type" : 106, "version" : 3, "timestamp" : 1619186857911, "height" : 861644 }
107. UpdateContract Transaction¶
Updating of a smart contract code. The byte representation of this transaction after it is signed must not exceed 150 kilobytes.
Transaction 107 signing as well as smart contract updating can only be done by the user with the contract_developer permission.
JSON:
Signing:
{ "image" : "vostok-sc/grpc-contract-example:2.2-test-update", "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "password": "", "fee" : 100000000, "contractId" : "BWzX4mRBEnHKgn3HB78My5DZzDAqnCLWCCNpCuRkZrJA", "imageHash" : "075ad1607f193cc6fdb5e85c201f9ca3907c622718d75706bbc2a94a330de5b5", "type" : 107, "version" : 2 }Broadcasting:
{ "senderPublicKey" : "CgqRPcPnexY533gCh2SSvBXh5bca1qMs7KFGntawHGww", "image" : "vostok-sc/grpc-contract-example:2.2-test-update", "fee" : 100000000, "imageHash" : "075ad1607f193cc6fdb5e85c201f9ca3907c622718d75706bbc2a94a330de5b5", "type" : 107, "version" : 2, "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "feeAssetId" : null, "proofs" : [ "RetQwzuWZWxpSNMqwB7k7o6hSm6nhFCc49zKUpwZEedzBYcohj9NVEPwAbKLW9RzRKX168xApV7Nu2qV2jaHAMg" ], "contractId" : "BWzX4mRBEnHKgn3HB78My5DZzDAqnCLWCCNpCuRkZrJA", "id" : "6oopqcEf4AF943SCAqkBPrghyeQhmwn64TrhtCZbAn3v", "timestamp" : 1625649822957, "height" : 1026022 }Version 3
Signing:
{ "image" : "registry.vostokservices.com/vostok-sc/grpc-contract-example:2.2-test-update", "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "password": "", "fee" : 100000000, "contractId" : "HTqdjXUPTHZqGen2KKUkEenTELAqQ8irN58LA8EcP17q", "imageHash" : "075ad1607f193cc6fdb5e85c201f9ca3907c622718d75706bbc2a94a330de5b5", "type" : 107, "version" : 3, "atomicBadge" : null }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "image" : "registry.vostokservices.com/vostok-sc/grpc-contract-example:2.2-test-update", "fee" : 100000000, "imageHash" : "075ad1607f193cc6fdb5e85c201f9ca3907c622718d75706bbc2a94a330de5b5", "type" : 107, "version" : 3, "atomicBadge" : null, "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "3ncWfFPqBAdgh65YceCCvF2RhUWWokQc9MsnHk27YLrYmPj9gWgrbRcousymJVA7ARFSz5UJcdW4Sa62FFhR5en3" ], "contractId" : "HTqdjXUPTHZqGen2KKUkEenTELAqQ8irN58LA8EcP17q", "id" : "B7qjgCa9N6M6FwV63PbLwvtVpFo4bzB5gRZzGjwJpKJV", "timestamp" : 1619187337697, "height" : 861650 }Version 4
Signing:
{ "image" : "vostok-sc/grpc_validatable_stateless:0.1", "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "password": "", "fee" : 100000000, "contractId" : "HSLdKYqLq4LcZpq9LPki8Yv4ZRkFapVyHEYw1vZW2MoG", "imageHash" : "bd98a7d3e55506ff936d8ea15e170a24d27662edd1b47e4fd20801d10655af8d", "type" : 107, "version" : 4, "atomicBadge" : null }Broadcasting:
{ "senderPublicKey" : "CgqRPcPnexY533gCh2SSvBXh5bca1qMs7KFGntawHGww", "image" : "vostok-sc/grpc_validatable_stateless:0.1", "fee" : 100000000, "imageHash" : "bd98a7d3e55506ff936d8ea15e170a24d27662edd1b47e4fd20801d10655af8d", "type" : 107, "version" : 4, "atomicBadge" : null, "apiVersion" : "1.0", "sender" : "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "feeAssetId" : null, "proofs" : [ "fZr9LpqSWbPcUzArSZxFDEuygN62hR63j2Cz1GyTFxPNRrNvVwkDhTDcC8zwRp235gA1gSM8fvPps9mvPTWDQ4p" ], "contractId" : "HSLdKYqLq4LcZpq9LPki8Yv4ZRkFapVyHEYw1vZW2MoG", "id" : "HWZy7219Nx5oxj2QnK3ReEuZiqsjoULbmfdQz8YysFSz", "validationPolicy" : { "type" : "any" }, "timestamp" : 1625732772746, "height" : 1028132 }
The 4th version of this transaction configures validation of the execution results of the updated smart contract using the validationPolicy.type
field (see section Validation of smart contracts).
Variants of validation policies:
any
- the general validation policy is kept in the network: to mine the updated smart contract, the miner signs the corresponding 105 transaction. Also, this parameter is set if there are no registered validators in the network.majority
- a transaction is considered valid if it is confirmed by the majority of validators: 2/3 of the total number of registered addresses with the contract_validator permission.majorityWithOneOf(List[Address])
- the transaction is considered valid if the majority of validators is collected, among which there is at least one of the addresses included in the parameter list. The addresses included in the list must have a valid contract_validator permission.
Warning
In case of using the majorityWithOneOf(List[Address])
validation policy, fill the address list, passing an empty list is not allowed.
110. GenesisRegisterNode Transaction¶
Registration of a node in a network genesis block while starting the blockchain.
This transaction does not require signing.
111. RegisterNode Transaction¶
Registration of a new node in the blockchain or its deletion.
JSON:
Signing:
{ "type": 111, "opType": "add", "sender":"3NgSJRdMYu4ZbNpSbyRNZLJDX926W7e1EKQ", "password": "", "targetPubKey": "6caEKC1UBgRvgAe9A7L5PWcrawrnEZGxtsXynGESwSj7", "nodeName": "GATEs node", "fee": 1100000, }Broadcasting:
{ "senderPublicKey" : "FWz5gZ2w2ZxXbKEiwhgEcZKT4we1Wneh9XqmCeGPsA4r", "nodeName" : "GATEs node", "fee" : 1100000, "opType" : "add", "type" : 111, "version" : 1, "target" : "3NtieMGjVAH1nDsvnSEJ37BSW3hpJV2CneY", "sender" : "3NgSJRdMYu4ZbNpSbyRNZLJDX926W7e1EKQ", "proofs" : [ "FHEexr8MqMCkdqaVRrfxv7dnQFwo1VQxQFb4rW2VKh1NkuAhjhtzftKybBQCVbpKcCD1ZTRhwATpwERF9re2Viz" ], "id" : "6WnDGkBDeSjg5y6QqVdy3BFHUy5nnr4QsxZCeNXZtZoq", "targetPubKey" : "6caEKC1UBgRvgAe9A7L5PWcrawrnEZGxtsXynGESwSj7", "timestamp" : 1619078302988, "height" : 858895 }
112. CreatePolicy Transaction¶
Creation of a confidential data group consisting of addresses stated in a transaction.
JSON:
Signing:
{ "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, "version": 2, }Broadcasting:
{ "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, "version": 2, }Version 3
Signing:
{ "sender": "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "policyName": "Policy_v3_for_demo_txs", "password":"sfgKYBFCF@#$fsdf()%", "recipients" : [ "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T", "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF", "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn" ], "fee": 100000000, "description": "", "owners" : [ "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T", "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF", "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn" ], "type": 112, "version": 3 }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "policyName" : "Policy_v3_for_demo_txs", "fee" : 100000000, "description" : "", "owners" : [ "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T", "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF", "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn" ], "type" : 112, "version" : 3, "atomicBadge" : null, "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "4NccZyPCgchDjeMdMmFKu7kxyU8AFF4e9cWaPFTQVQyYU1ZCCu3QmtmkfJkrDpDwGs4eJhYUVh5TnwYvjZYKPhLp" ], "recipients" : [ "3Nm84ERiJqKfuqSYxzMAhaJXdj2ugA7Ve7T", "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF", "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "3NotQaBygbSvYZW4ftJ2ZwLXex4rTHY1Qzn" ], "id" : "5aYtmTr1AYYG8BrYvTTSqKzfJZxfgorx1BLGVwSAhwrz", "timestamp" : 1619186864092, "height" : 861637 }
113. UpdatePolicy Transaction¶
Updating of a confidential data group.
JSON:
Signing:
{ "policyId": "UkvoboGXiwWpASr1GLG9M1MUbhrEMo4NBS7kquxVMw5", "password":"sfgKYBFCF@#$fsdf()*%", "sender": "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "recipients" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "fee": 50000000, "opType": "remove", "owners" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "type": 113, "version": 2 }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "fee" : 50000000, "opType" : "remove", "owners" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "type" : 113, "version" : 2, "policyId" : "UkvoboGXiwWpASr1GLG9M1MUbhrEMo4NBS7kquxVMw5", "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "2CKd57kU3wbxdrHxMPNbrWHptnf5ZcydYjqxMPk46miMcUUAxgFGXcy621cjYFXC3vjpKNNrB2QcgtKe1Yx9TcLY" ], "recipients" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "id" : "6o4azRwzmMg9SqWUq6rv6GAe5gzTYJvE5ek1v9VM3Mb", "timestamp" : 1619004195630, "height" : 856970 }Version 3
Signing:
{ "policyId": "5aYtmTr1AYYG8BrYvTTSqKzfJZxfgorx1BLGVwSAhwrz", "password":"sfgKYBFCF@#$fsdf()*%", "sender": "3NkZd8Xd4KsuPiNVsuphRNCZE3SqJycqv8d", "recipients" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "fee": 50000000, "opType": "remove", "owners" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "type": 113, "version": 3 }Broadcasting:
{ "senderPublicKey" : "7GiFGcGaEN87ycK8v71Un6b7RUoeKBU4UvUHPYbeHaki", "fee" : 50000000, "opType" : "remove", "owners" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "type" : 113, "version" : 3, "atomicBadge" : null, "policyId" : "5aYtmTr1AYYG8BrYvTTSqKzfJZxfgorx1BLGVwSAhwrz", "sender" : "3NxAooHUoLsAQvxBSqjE91WK3LwWGjiiCxx", "feeAssetId" : null, "proofs" : [ "2QMGoz6rycNsDLhN3mDce2mqGRQQ8r26vDDw551pnYcAecpFBDA8j38FVqDjLTGuFHs6ScX32fsGcaemmptpCFHk" ], "recipients" : [ "3NtNJV44wyxRXv2jyW3yXLxjJxvY1vR88TF" ], "id" : "Hwqf8LgpQfEcUYX9nMNG8uU2Cw1xSuGFqYxmuACpvU1L", "timestamp" : 1619187450552, "height" : 861653 }
114. PolicyDataHash Transaction¶
Sending of a confidential data hash into the network. This transaction is created automatically while sending confidential data into the network with the use of the POST /privacy/sendData
REST API method.
This transaction does not require signing.
120. AtomicTransaction¶
Atomic transaction: sets other transactions in a container for their atomic execution. This transaction can be executed only in full (no transactions have been declined), in other cases it will not be executed.
Atomic transaction support 2 and more transactions of the following types:
4. Transfer Transaction, ver. 3
102. Permission Transaction, ver. 2
103. CreateContract Transaction, ver. 3
104. CallContract Transaction, ver. 4
106. DisableContract Transaction, ver. 3
107. UpdateContract Transaction, ver. 3
112. CreatePolicy Transaction, ver. 3
113. UpdatePolicy Transaction, ver. 3
114. PolicyDataHash Transaction, ver. 3
An atomic transaction itself does not require a fee: its total fee is summed up from fee of transactions included into it.
Learn more about atomic transactions: Atomic transactions
JSON:
Signing:
{ "sender": sender_0, "transactions": [ signed_transfer_tx, signed_transfer_tx2 ], "type": 120, "version": 1, "password":"lskjbJJk$%^#298", "fee": 0, }Broadcasting:
{ "sender": "3MufokZsFzaf7heTV1yreUtm1uoJXPoFzdP", "transactions": [ signed_transfer_tx, signed_transfer_tx2 ], "type": 120, "version": 1, }