diff --git a/source/docs/casper/concepts/transactions-and-transaction-lifecycle.md b/source/docs/casper/concepts/transactions-and-transaction-lifecycle.md index 2f252c8f14..419574e39f 100644 --- a/source/docs/casper/concepts/transactions-and-transaction-lifecycle.md +++ b/source/docs/casper/concepts/transactions-and-transaction-lifecycle.md @@ -5,7 +5,7 @@ slug: /transactions-and-transaction-lifecycle # Transactions and the Transaction Lifecycle -## Transactionss {#execution-semantics-transactions} +## Transactions {#execution-semantics-transactions} A [transaction](./glossary/T.md#transaction) is a data structure containing Wasm and the requester's signature(s). Additionally, the transaction header contains additional metadata about the transaction itself. A transactions’s structure is as follows: diff --git a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md index 5247f64a02..b8a4f918b5 100644 --- a/source/docs/casper/developers/cli/transfers/direct-token-transfer.md +++ b/source/docs/casper/developers/cli/transfers/direct-token-transfer.md @@ -169,7 +169,7 @@ casper-client transfer -v \ A transfer on a Casper network is only executed after it has been included in a finalized block. ```bash -casper-client get-deploy +casper-client get-deploy \ --node-address [NODE_SERVER_ADDRESS] [DEPLOY_HASH] ``` @@ -187,7 +187,7 @@ Transfer addresses use a `transfer-` string prefix. **Example Query:** ```bash -casper-client get-deploy +casper-client get-deploy \ --node-address https://rpc.testnet.casperlabs.io 1f17a0bdeaaf71abd03492c854cdf97f746432751721ce555e95b9cefe641e3c ``` diff --git a/source/docs/casper/developers/json-rpc/errors.md b/source/docs/casper/developers/json-rpc/errors.md index 361cb59e5f..949ebbcc35 100644 --- a/source/docs/casper/developers/json-rpc/errors.md +++ b/source/docs/casper/developers/json-rpc/errors.md @@ -2,7 +2,7 @@ The following document expands on custom error codes provided by `casper-json-rpc` crate. -## Error Codes {#codes} +## Error Codes |Code |Error |Description | |--------|-----------------------------|-------------------------------------------------------| @@ -25,7 +25,7 @@ The following document expands on custom error codes provided by `casper-json-rp | -32603 | InternalError | Internal JSON-RPC error. | | -32700 | ParseError | Invalid JSON was received by the server. | -## Invalid `Params` {#invalid-params} +## Invalid `Params` The `casper-json-rpc` no longer ignores invalid `params` fields. `Params` fields to be omitted should be an empty Array '[]', an empty Object '{}' or absent. diff --git a/source/docs/casper/developers/json-rpc/guidance.md b/source/docs/casper/developers/json-rpc/guidance.md index 7d34272216..bfbb2b8b91 100644 --- a/source/docs/casper/developers/json-rpc/guidance.md +++ b/source/docs/casper/developers/json-rpc/guidance.md @@ -6,7 +6,7 @@ A compliant Casper JSON-RPC SDK implementation must support all the endpoints an ## Consistency -A Casper JSON-RPC SDK must be consistent in terminology, language, and functionality relative to the Casper platform's architecture and design. Use actual terms such as Account and Deploy, not similar terms such as wallet or transaction. +A Casper JSON-RPC SDK must be consistent in terminology, language, and functionality relative to the Casper platform's architecture and design. Use actual terms such as Account and AddressableEntity, not similar terms such as wallet. Care should be taken to maintain a universal language and not obscure the domain concepts of the Casper platform, which could confuse users of the SDK. The goal is to not make it difficult for users of an SDK to understand the documentation of the Casper platform. Further, they should be able to communicate effectively with technical support personnel who understand the terminology of the Casper platform and not the variant terminology of an SDK. diff --git a/source/docs/casper/developers/json-rpc/index.md b/source/docs/casper/developers/json-rpc/index.md index db18a926e8..8a9aca356b 100644 --- a/source/docs/casper/developers/json-rpc/index.md +++ b/source/docs/casper/developers/json-rpc/index.md @@ -4,22 +4,22 @@ title: Overview # Interacting with the Casper JSON-RPC API -Casper uses a custom JSON-RPC implementation known as `casper-json-rpc` that is compliant with the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification). If you are on this page, you are an advanced user wishing to interact directly with a Casper node's JSON-RPC API. You may use [Postman](https://www.postman.com/) or write code to interact with the Casper JSON-RPC API, which is fully compatible with the JSON-RPC 2.0 Specification. +Casper uses a custom JSON-RPC implementation called `casper-json-rpc` that complies with the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification). -Casper nodes provide the RPC schema on port `8888`, followed by `rpc-schema`: +The [Casper Sidecar](../../operators/setup/casper-sidecar.md) service offers a JSON-RPC API server for clients to interact with a Casper node. The Sidecar acts as a JSON bridge between subscribers and a Casper node's binary port, producing faster responses and reducing the load placed on the node. For more details on how the JSON-RPC API works, see the [JSON-RPC README](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/json_rpc/README.md) in the Sidecar repository. The Sidecar usually runs on the same machine as the node process, and you need to find the port on which to access the Sidecar. -```sh -/rpc-schema -``` - -To see an example, navigate to a node's RPC schema using a browser. +You can find the latest RPC schema in the Sidecar's [GitHub repository](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/resources/test/rpc_schema.json). -The Casper client subcommand `list-rpcs` provides all currently supported RPCs. Here is an example of running the Casper client to list RPCs: +The Casper client subcommand `list-rpcs` also provides all currently supported RPCs. Here is an example of running the Casper client to list RPCs: ```sh casper-client list-rpcs --node-address ``` +You may use [Postman](https://www.postman.com/) or write code to interact with the Casper JSON-RPC API, which is fully compatible with the JSON-RPC 2.0 Specification. + + + ## Table of Contents |Page |Description | diff --git a/source/docs/casper/developers/json-rpc/json-rpc-informational.md b/source/docs/casper/developers/json-rpc/json-rpc-informational.md index 25ae0a63c3..604741759e 100644 --- a/source/docs/casper/developers/json-rpc/json-rpc-informational.md +++ b/source/docs/casper/developers/json-rpc/json-rpc-informational.md @@ -1,23 +1,23 @@ -# Informational JSON-RPC Methods {#informational} +# Informational JSON-RPC Methods The following methods return information from a node on a Casper network. The response should be identical, regardless of the node queried, as the information in question is objective and common to all nodes within a network. --- -## chain_get_block {#chain-get-block} +## chain_get_block -This method returns the JSON representation of a [Block](../../concepts/design/casper-design.md#block-structure-head) from the network. +This method returns the JSON representation of a [Block](../../concepts/design/casper-design.md#block-structure-head) from the network. If you do not specify a `block_identifier`, you will receive the most recent block. |Parameter|Type|Description| |---------|----|-----------| -|[block_identifier](types_chain.md#blockidentifier)|Object|The Block hash or the Block height.| +|[block_identifier](types_chain.md#blockidentifier)|Object|The Block hash or the Block height. (Optional)|
Example chain_get_block request -```bash +```json { "id": 1, @@ -25,7 +25,10 @@ This method returns the JSON representation of a [Block](../../concepts/design/c "method": "chain_get_block", "params": [ { - "Hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb" + "name": "block_identifier", + "value": { + "Hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42" + } } ] } @@ -41,75 +44,97 @@ The result from `chain_get_block` depends on block availability from a given nod |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[block](types_chain.md#jsonblock)|Object|The Block, if found. (Not required)| +|[block](types_chain.md#jsonblock)|Object|The Block, if found. (Optional)|
Example chain_get_block result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "block": { - "body": { - "deploy_hashes": [], - "proposer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "transfer_hashes": [ - "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa" - ] - }, - "hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb", - "header": { - "accumulated_seed": "ac979f51525cfd979b14aa7dc0737c5154eabe0db9280eceaa8dc8d2905b20d5", - "body_hash": "cd502c5393a3c8b66d6979ad7857507c9baf5a8ba16ba99c28378d3a970fff42", - "era_end": { - "era_report": { - "equivocators": [ - "013b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29" - ], - "inactive_validators": [ - "018139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394" - ], - "rewards": [ - { - "amount": 1000, - "validator": "018a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c" - } - ] - }, - "next_era_validator_weights": [ - { - "validator": "016e7a1cdd29b0b78fd13af4c5598feff4ef2a97166e3ca6f2e4fbfccd80505bf1", - "weight": "456" - }, - { - "validator": "018a875fff1eb38451577acd5afee405456568dd7c89e090863a0557bc7af49f17", - "weight": "789" + "name": "chain_get_block_result", + "value": { + "api_version": "2.0.0", + "block_with_signatures": { + "block": { + "Version2": { + "hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42", + "header": { + "parent_hash": "0707070707070707070707070707070707070707070707070707070707070707", + "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", + "body_hash": "48859fb4865d8637d6a35cb224e222cd0e1b1c2dd72928932c1e35ac0550818b", + "random_bit": true, + "accumulated_seed": "ac979f51525cfd979b14aa7dc0737c5154eabe0db9280eceaa8dc8d2905b20d5", + "era_end": { + "equivocators": [ + "013b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29" + ], + "inactive_validators": [ + "018139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394" + ], + "next_era_validator_weights": [ + { + "validator": "013b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29", + "weight": "123" + }, + { + "validator": "016e7a1cdd29b0b78fd13af4c5598feff4ef2a97166e3ca6f2e4fbfccd80505bf1", + "weight": "456" + }, + { + "validator": "018a875fff1eb38451577acd5afee405456568dd7c89e090863a0557bc7af49f17", + "weight": "789" + } + ], + "rewards": {}, + "next_era_gas_price": 1 + }, + "timestamp": "2020-11-17T00:39:24.072Z", + "era_id": 1, + "height": 10, + "protocol_version": "1.0.0", + "proposer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "current_gas_price": 1, + "last_switch_block_hash": "0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a" }, - { - "validator": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "weight": "123" + "body": { + "transactions": { + "0": [ + { + "Version1": "1414141414141414141414141414141414141414141414141414141414141414" + } + ], + "1": [ + { + "Version1": "1515151515151515151515151515151515151515151515151515151515151515" + } + ], + "2": [ + { + "Version1": "1616161616161616161616161616161616161616161616161616161616161616" + } + ], + "3": [ + { + "Version1": "1717171717171717171717171717171717171717171717171717171717171717" + } + ] + }, + "rewarded_signatures": [] } - ] + } }, - "era_id": 1, - "height": 10, - "parent_hash": "0707070707070707070707070707070707070707070707070707070707070707", - "protocol_version": "1.0.0", - "random_bit": true, - "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", - "timestamp": "2020-11-17T00:39:24.072Z" - }, - "proofs": [ - { - "public_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "signature": "016291a7b2689e2edcc6e79030be50edd02f9bd7d809921ae2654012f808c7b9a0f125bc32d6aa610cbd012395a9832ccfaa9262023339f1db71ca073a13bb9707" - } - ] + "proofs": [ + { + "public_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "signature": "01e18ca03d2ef0238a6a2460a222e0b818406bda99d4c05502c80232013559b926d1c8bca6bf65386f54a847d7850cb76c0c5fd5e633c34c749b8b9958a638d806" + } + ] + } } } } @@ -118,19 +143,19 @@ The result from `chain_get_block` depends on block availability from a given nod
-## chain_get_block_transfers {#chain-get-block-transfers} +## chain_get_block_transfers -This method returns all **successful** native transfers within a given [Block](../../concepts/design/casper-design.md#block-structure-head) from a network. +This method returns all **successful** native transfers within a given [Block](../../concepts/design/casper-design.md#block-structure-head) from a network. If you do not specify a `block_identifier`, you will receive the transfers from the most recent block. |Parameter|Type|Description| |---------|----|-----------| -|[block_identifier](types_chain.md#blockidentifier)|Object|The Block hash.| +|[block_identifier](types_chain.md#blockidentifier)|Object|The Block hash. (Optional)|
Example chain_get_block_transfers request -```bash +```json { "id": 1, @@ -138,7 +163,10 @@ This method returns all **successful** native transfers within a given [Block](. "method": "chain_get_block_transfers", "params": [ { - "Hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb" + "name": "block_identifier", + "value": { + "Hash": "0707070707070707070707070707070707070707070707070707070707070707" + } } ] } @@ -151,33 +179,42 @@ This method returns all **successful** native transfers within a given [Block](. |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[block_hash](./types_chain.md#blockhash)|Object|The Block hash, if found.| -|[transfers](./types_chain.md#transfer)|Array|The Block's successful transfers, if found.| +|[block_hash](./types_chain.md#blockhash)|Object|The Block hash, if found. (Optional)| +|[transfers](./types_chain.md#transfer)|Array|The Block's successful transfers, if found. (Optional)|
Example chain_get_block_transfers result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "block_hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb", - "transfers": [ - { - "amount": "0", - "deploy_hash": "0000000000000000000000000000000000000000000000000000000000000000", - "from": "account-hash-0000000000000000000000000000000000000000000000000000000000000000", - "gas": "0", - "id": null, - "source": "uref-0000000000000000000000000000000000000000000000000000000000000000-000", - "target": "uref-0000000000000000000000000000000000000000000000000000000000000000-000", - "to": null - } - ] + "name": "chain_get_block_transfers_result", + "value": { + "api_version": "2.0.0", + "block_hash": "0707070707070707070707070707070707070707070707070707070707070707", + "transfers": [ + { + "Version2": { + "transaction_hash": { + "Version1": "0101010101010101010101010101010101010101010101010101010101010101" + }, + "from": { + "AccountHash": "account-hash-0202020202020202020202020202020202020202020202020202020202020202" + }, + "to": "account-hash-0303030303030303030303030303030303030303030303030303030303030303", + "source": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007", + "target": "uref-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b-000", + "amount": "1000000000000", + "gas": "2500000000", + "id": 999 + } + } + ] + } } } @@ -185,7 +222,7 @@ This method returns all **successful** native transfers within a given [Block](.
-## chain_get_era_summary {#chain-get-era-summary} +## chain_get_era_summary This method returns the era summary at a given [Block](../../concepts/design/casper-design.md#block-structure-head). If you do not specify a `block_identifier`, you will receive the era summary at the highest state root hash. @@ -197,7 +234,7 @@ This method returns the era summary at a given [Block](../../concepts/design/cas Example chain_get_era_summary request -```bash +```json { "id": 1, @@ -205,7 +242,10 @@ This method returns the era summary at a given [Block](../../concepts/design/cas "method":"chain_get_era_summary", "params": [ { - "Hash":"9bfa58709058935882a095ca6adf844b72a2ddf0f49b8575ef1ceda987452fb8" + "name": "block_identifier", + "value": { + "Hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42" + } } ] } @@ -219,95 +259,46 @@ This method returns the era summary at a given [Block](../../concepts/design/cas |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[era_summary](./types_chain.md#erasummary)|Object|The era summary (if found).| +|[era_summary](./types_chain.md#erasummary)|Object|The era summary, if found. (Optional)|
Example chain_get_era_summary result -```bash +```json { "jsonrpc": "2.0", "id": 1, "result": { - "api_version": "1.0.0", - "era_summary": { - "block_hash": "9bfa58709058935882a095ca6adf844b72a2ddf0f49b8575ef1ceda987452fb8", - "era_id": 1, - "stored_value": { - "EraInfo": { - "seigniorage_allocations": [ - { - "Delegator": { - "delegator_public_key": "01c08939bf1ecd1139448d435989a761c975466d30b96c2dd74e9d23c7b12bc9ff", - "validator_public_key": "01039c258651e04597d786142d9749922245cf44b6cc0c93c58bd6c1783ac3be9b", - "amount": "53472520551166781393617756" - } - }, - { - "Validator": { - "validator_public_key": "01039c258651e04597d786142d9749922245cf44b6cc0c93c58bd6c1783ac3be9b", - "amount": "54552773491594393138943367" - } - }, - { - "Delegator": { - "delegator_public_key": "01264689a5b4c57dac1088cd0aae8074de105f2269f6041e2c120e80df7a95e6b5", - "validator_public_key": "013e193dec433a73a0b41b924243c62311689648a10b4468f9c609c75674c18726", - "amount": "51312014670568117976319374" - } - }, - { - "Validator": { - "validator_public_key": "013e193dec433a73a0b41b924243c62311689648a10b4468f9c609c75674c18726", - "amount": "56713279372733183026458256" - } - }, - { - "Delegator": { - "delegator_public_key": "016f571eaf1d3a442e684ecdb31d00a51448dcbaa06d00b340983311f0ba3e76db", - "validator_public_key": "0186d12379939682ae9669b354f7a637ec106369074d567b969cc0e2127c904f12", - "amount": "51852141140784624481333262" - } - }, - { - "Validator": { - "validator_public_key": "0186d12379939682ae9669b354f7a637ec106369074d567b969cc0e2127c904f12", - "amount": "56173152902516676521444368" - } - }, - { - "Delegator": { - "delegator_public_key": "0161e7ed5c592f16b507b9dd196662b530f9bde6c5b2cfd957fe8d0700ecfbe20b", - "validator_public_key": "01d4cbef55ed9968171102aa136c9564286211ee46c5ab65b6fd68fab5b14d4c4b", - "amount": "52392267611001130986347150" - } - }, - { - "Validator": { - "validator_public_key": "01d4cbef55ed9968171102aa136c9564286211ee46c5ab65b6fd68fab5b14d4c4b", - "amount": "55633026432300170016430480" - } - }, - { - "Delegator": { - "delegator_public_key": "01b1339a1d114036d84d7b65c804669166d38456114657abbb0e53e67bf1667c60", - "validator_public_key": "01dbce10c8418c21daf16bc1052a486cdb557ba66b09a84605bc1f4b3df364960f", - "amount": "52932394080952975520954950" - } - }, - { - "Validator": { - "validator_public_key": "01dbce10c8418c21daf16bc1052a486cdb557ba66b09a84605bc1f4b3df364960f", - "amount": "55092899961808199011606173" + "name": "chain_get_era_summary_result", + "value": { + "api_version": "2.0.0", + "era_summary": { + "block_hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42", + "era_id": 42, + "stored_value": { + "EraInfo": { + "seigniorage_allocations": [ + { + "Delegator": { + "delegator_public_key": "01e1b46a25baa8a5c28beb3c9cfb79b572effa04076f00befa57eb70b016153f18", + "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876", + "amount": "1000" + } + }, + { + "Validator": { + "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876", + "amount": "2000" + } } - } - ] - } - }, - "state_root_hash": "918abd1973171867e03c1e6e56fd7dd9da35c92461784f9a15c0df23e437d850", - "merkle_proof": "010000000e0000000000000000000000000000000000000000000000000000000000000000070a0000000101c08939bf1ecd1139448d435989a761c975466d30b96c2dd74e9d23c7b12bc9ff01039c258651e04597d786142d9749922245cf44b6cc0c93c58bd6c1783ac3be9b0b5c4316483512c2253f3b2c0001039c258651e04597d786142d9749922245cf44b6cc0c93c58bd6c1783ac3be9b0b87d59268bf17d8c6ff1f2d0101264689a5b4c57dac1088cd0aae8074de105f2269f6041e2c120e80df7a95e6b5013e193dec433a73a0b41b924243c62311689648a10b4468f9c609c75674c187260b8e45261378f096e3bd712a00013e193dec433a73a0b41b924243c62311689648a10b4468f9c609c75674c187260b90eee69bba24050981e92e01016f571eaf1d3a442e684ecdb31d00a51448dcbaa06d00b340983311f0ba3e76db0186d12379939682ae9669b354f7a637ec106369074d567b969cc0e2127c904f120b0ef09fedb1f521341ee42a000186d12379939682ae9669b354f7a637ec106369074d567b969cc0e2127c904f120b10446dc1801f7ab820772e010161e7ed5c592f16b507b9dd196662b530f9bde6c5b2cfd957fe8d0700ecfbe20b01d4cbef55ed9968171102aa136c9564286211ee46c5ab65b6fd68fab5b14d4c4b0b8e9a19c8ebfaac847e562b0001d4cbef55ed9968171102aa136c9564286211ee46c5ab65b6fd68fab5b14d4c4b0b9099f3e6461aef67c0042e0101b1339a1d114036d84d7b65c804669166d38456114657abbb0e53e67bf1667c6001dbce10c8418c21daf16bc1052a486cdb557ba66b09a84605bc1f4b3df364960f0b46fad737700f37d5dec82b0001dbce10c8418c21daf16bc1052a486cdb557ba66b09a84605bc1f4b3df364960f0b9d1ed178841a631760922d01000000000e060000000001fb7043fe388fef916937aa899a0dda9b042168149e600fb068ecb16839d545d60101a0676758b903440b28c8f4a1d46404e9879fcfc0b90dad20962536de493aecc302013584bc9d5c00ac639fe14410b4cfa480b12eddd8f3dce08d7b76ae47977c1c680601664224aca1272e2a5632da4a56399dee6c585318ebbb7bb4040039792d3ad33c07013b48237cd26eb35ec3c864e1ae250ca656d00893de1dfc4c951e0d779adeda1d0a002c722cac61792676eb19d773fd3c41e37a63f54f78bdf7712ca96a5c5e5c4986" + ] + } + }, + "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", + "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3" + } } } } @@ -316,7 +307,7 @@ This method returns the era summary at a given [Block](../../concepts/design/cas
-## chain_get_state_root_hash {#chain-get-state-root-hash} +## chain_get_state_root_hash This method returns a state root hash at a given [Block](../../concepts/design/casper-design.md#block-structure-head). If you do not specify a `block_identifier`, you will receive the highest state root hash. @@ -328,7 +319,7 @@ This method returns a state root hash at a given [Block](../../concepts/design/c Example chain_get_state_root_hash request -```bash +```json { "id": 1, @@ -336,7 +327,10 @@ This method returns a state root hash at a given [Block](../../concepts/design/c "method": "chain_get_state_root_hash", "params": [ { - "Height": 10 + "name": "block_identifier", + "value": { + "Height": 10 + } } ] } @@ -356,14 +350,17 @@ This method returns a state root hash at a given [Block](../../concepts/design/c Example chain_get_state_root_hash result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808" + "name": "chain_get_state_root_hash_result", + "value": { + "api_version": "2.0.0", + "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808" + } } } @@ -371,20 +368,21 @@ This method returns a state root hash at a given [Block](../../concepts/design/c
-## info_get_chainspec {#info-get-chainspec} +## info_get_chainspec -This method returns raw bytes for chainspec files. +This method returns the raw bytes of the chainspec.toml, genesis accounts.toml, and global_state.toml files.
Example info_get_chainspec request -```bash +```json { + "id": 5510244237763930243, "jsonrpc": "2.0", "method": "info_get_chainspec", - "id": 5510244237763930243 + "params": [] } ``` @@ -404,16 +402,19 @@ This method returns raw bytes for chainspec files. Please note that adding a `--vv` flag will return the full chainspec bytes. -```bash +```json { "jsonrpc": "2.0", "result": { - "api_version": "1.5.0", - "chainspec_bytes": { - "chainspec_bytes": "[22040 hex chars]", - "maybe_genesis_accounts_bytes": null, - "maybe_global_state_bytes": null + "name": "info_get_chainspec_result", + "value": { + "api_version": "2.0.0", + "chainspec_bytes": { + "chainspec_bytes": "[22040 hex chars]", + "maybe_genesis_accounts_bytes": null, + "maybe_global_state_bytes": null + } } }, "id": 5510244237763930243 @@ -423,7 +424,13 @@ Please note that adding a `--vv` flag will return the full chainspec bytes.
-## info_get_deploy {#info-get-deploy} +## info_get_deploy + +:::caution + +**DEPRECATED**: Use [info_get_transaction](#info_get_transaction-info-get-transaction) instead. + +::: This method retrieves a [Deploy](../../concepts/design/casper-design.md#execution-semantics-deploys) from a network. It requires a `deploy_hash` to query the Deploy. @@ -436,15 +443,21 @@ This method retrieves a [Deploy](../../concepts/design/casper-design.md#executio Example info_get_deploy request -```bash +```json { "id": 1, "jsonrpc": "2.0", "method": "info_get_deploy", "params": [ - "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa", - true + { + "name": "deploy_hash", + "value": "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa" + }, + { + "name": "finalized_approvals", + "value": true + } ] } @@ -456,28 +469,27 @@ This method retrieves a [Deploy](../../concepts/design/casper-design.md#executio The response contains the Deploy and the results of executing the Deploy. -If the `execution_results` field is empty, it means that the network processed the `Deploy`, but has yet to execute it. If the network executed the `Deploy`, it will return the results of the execution. The execution results contain the Block hash which contains the Deploy. +If the `execution_info` field is empty, it means that the network processed the `Deploy`, but has yet to execute it. If the network executed the `Deploy`, it will return the results of the execution. The execution results contain the Block hash which contains the Deploy. |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[block_hash](./types_chain.md#blockhash)|Object|The Block hash, if found.| -|block_height|Integer|The height of the Block.| |[deploy](./types_chain.md#deploy)|Object|The Deploy.| -|[execution_results](./types_chain.md#jsonexecutionresult)|Array|An array of execution results with Block hashes.| +|[execution_info](./types_chain.md#executioninfo)|Array|An array of execution results with Block hashes, if found. (Optional)|
Example info_get_deploy result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { + "name": "info_get_deploy_result", "value": { - "api_version": "1.5.3", + "api_version": "2.0.0", "deploy": { "hash": "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa", "header": { @@ -528,11 +540,42 @@ If the `execution_results` field is empty, it means that the network processed t } ] }, - "block_hash": "9ccc716f5f3c7ac238bf7aaad113c2add3586921a7966faffb3a5a253aa1d75e", - "block_height": 10, - "execution_result": { - "Version2": { - "Success": { + "execution_info": { + "block_hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42", + "block_height": 10, + "execution_result": { + "Version2": { + "initiator": { + "PublicKey": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" + }, + "error_message": null, + "limit": "123456", + "consumed": "100000", + "cost": "246912", + "payment": [ + { + "source": "uref-0101010101010101010101010101010101010101010101010101010101010101-001" + } + ], + "transfers": [ + { + "Version2": { + "transaction_hash": { + "Version1": "0101010101010101010101010101010101010101010101010101010101010101" + }, + "from": { + "AccountHash": "account-hash-0202020202020202020202020202020202020202020202020202020202020202" + }, + "to": "account-hash-0303030303030303030303030303030303030303030303030303030303030303", + "source": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007", + "target": "uref-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b-000", + "amount": "1000000000000", + "gas": "2500000000", + "id": 999 + } + } + ], + "size_estimate": 186, "effects": [ { "key": "account-hash-2c4a11c062a8a337bfc97e27fd66291caeb2c65865dcb5d3ef3759c4c97efecb", @@ -544,12 +587,7 @@ If the `execution_results` field is empty, it means that the network processed t "key": "deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1", "kind": "Identity" } - ], - "transfers": [ - "transfer-5959595959595959595959595959595959595959595959595959595959595959", - "transfer-8282828282828282828282828282828282828282828282828282828282828282" - ], - "cost": "123456" + ] } } } @@ -561,21 +599,21 @@ If the `execution_results` field is empty, it means that the network processed t
-## info_get_reward {#info-get-reward} +## info_get_reward This method returns the reward for a given era and a validator or delegator. |Parameter|Type|Description| |---------|----|-----------| |[validator](types_chain.md#publickey)|String|The public key of the validator.| -|[era_identifier](types_chain.md#eraientifier)|Object|The era identifier. If `None`, the last finalized era is used.| -|[delegator](types_chain.md#publickey)|String|The public key of the delegator. If `Some`, the rewards for the delegator are returned. If `None`, the rewards for the validator are returned.| +|[era_identifier](types_chain.md#eraientifier)|Object|The era identifier. If `None`, the last finalized era is used. (Optional)| +|[delegator](types_chain.md#publickey)|String|The public key of the delegator. If `Some`, the rewards for the delegator are returned. If `None`, the rewards for the validator are returned. (Optional)|
Example info_get_reward request -```bash +```json { "id": 1, @@ -615,22 +653,25 @@ This method returns the reward for a given era and a validator or delegator. Example info_get_reward result -```bash +```json { "id": 1, "jsonrpc": "2.0", - "value": { + "result": { + "name": "info_get_reward_result", + "value": { "api_version": "2.0.0", "reward_amount": "42", "era_id": 1 - } + } + } ```
-## info_get_transaction {#info-get-transaction} +## info_get_transaction This method retrieves a transaction from a network. It requires a `transaction_hash` to query the Deploy. @@ -643,7 +684,7 @@ This method retrieves a transaction from a network. It requires a `transaction_h Example info_get_transaction request -```bash +```json { "id": 1, @@ -653,7 +694,7 @@ This method retrieves a transaction from a network. It requires a `transaction_h { "name": "transaction_hash", "value": { - "Version1": "6aaf4a54499e3757eb4be6967503dcc431e4623bf8bb57a14c1729a114a1aaa2" + "Version1": "f5582cb81a5abda63ebaa4edb3b05210ecbd63ffb8dd17bfbeb3b867f4014468" } }, { @@ -669,152 +710,171 @@ This method retrieves a transaction from a network. It requires a `transaction_h ### `info_get_transaction_result` -The response contains the transaction and the results of executing the associated Deploy. +The response contains the transaction and the results of executing it on the network. -If the `execution_results` field is empty, it means that the network processed the transaction, but has yet to execute it. If the network executed the transaction, it will return the results of the associated Deploy's execution. The execution results contain the Block hash which contains the Deploy. +If the `execution_info` field is empty, it means that the network processed the transaction but has yet to execute it. If the network executed the transaction, it will return the execution information, along with the block hash containing the transaction. |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[block_hash](./types_chain.md#blockhash)|Object|The Block hash, if found.| -|block_height|Integer|The height of the Block.| |[transaction](./types_chain.md#transaction)|Object|The transaction.| -|[execution_results](./types_chain.md#jsonexecutionresult)|Array|An array of execution results with Block hashes.| +|[execution_info](./types_chain.md#executioninfo)|Array|An array of execution results with Block hashes, if found. (Optional)|
Example info_get_transaction result -```bash +```json { "id": 1, "jsonrpc": "2.0", - "value": { - "api_version": "1.5.3", - "transaction": { - "Version1": { - "hash": "6aaf4a54499e3757eb4be6967503dcc431e4623bf8bb57a14c1729a114a1aaa2", - "header": { - "chain_name": "casper-example", - "timestamp": "2020-11-17T00:39:24.072Z", - "ttl": "1h", - "body_hash": "d2433e28993036fbdf7c963cd753893fefe619e7dbb5c0cafa5cb03bcf3ff9db", - "pricing_mode": { - "GasPriceMultiplier": 1 - }, - "payment_amount": null, - "initiator_addr": { - "PublicKey": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" - } - }, - "body": { - "args": [ - [ - "source", - { - "cl_type": "URef", - "bytes": "0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a07", - "parsed": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007" + "result": { + "name": "info_get_transaction_result", + "value": { + "api_version": "2.0.0", + "transaction": { + "Version1": { + "hash": "f5582cb81a5abda63ebaa4edb3b05210ecbd63ffb8dd17bfbeb3b867f4014468", + "header": { + "chain_name": "casper-example", + "timestamp": "2020-11-17T00:39:24.072Z", + "ttl": "1h", + "body_hash": "aa24833ffbf31d62c8c8c4265349e7c09cd71952fcbce6f7b12daf5e340bf2cc", + "pricing_mode": { + "Fixed": { + "gas_price_tolerance": 5 } + }, + "initiator_addr": { + "PublicKey": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" + } + }, + "body": { + "args": [ + [ + "source", + { + "cl_type": { + "Option": "URef" + }, + "bytes": "010a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a07", + "parsed": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007" + } + ], + [ + "target", + { + "cl_type": "URef", + "bytes": "1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b00", + "parsed": "uref-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b-000" + } + ], + [ + "amount", + { + "cl_type": "U512", + "bytes": "0500ac23fc06", + "parsed": "30000000000" + } + ], + [ + "id", + { + "cl_type": { + "Option": "U64" + }, + "bytes": "01e703000000000000", + "parsed": 999 + } + ] ], - [ - "target", + "target": "Native", + "entry_point": "Transfer", + "transaction_category": 0, + "scheduling": "Standard" + }, + "approvals": [ + { + "signer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "signature": "0137d3f468d8f8a6e63f4110d79be29b8c8428e9cd858a92049660e7851ae16a299640d1fc1c930ab6cb424f1a6eec0b194df74bede14f4af1b5133106f1280d0b" + } + ] + } + }, + "execution_info": { + "block_hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42", + "block_height": 10, + "execution_result": { + "Version2": { + "initiator": { + "PublicKey": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" + }, + "error_message": null, + "limit": "123456", + "consumed": "100000", + "cost": "246912", + "payment": [ { - "cl_type": "URef", - "bytes": "1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b00", - "parsed": "uref-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b-000" + "source": "uref-0101010101010101010101010101010101010101010101010101010101010101-001" } ], - [ - "amount", + "transfers": [ { - "cl_type": "U512", - "bytes": "0500ac23fc06", - "parsed": "30000000000" + "Version2": { + "transaction_hash": { + "Version1": "0101010101010101010101010101010101010101010101010101010101010101" + }, + "from": { + "AccountHash": "account-hash-0202020202020202020202020202020202020202020202020202020202020202" + }, + "to": "account-hash-0303030303030303030303030303030303030303030303030303030303030303", + "source": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007", + "target": "uref-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b-000", + "amount": "1000000000000", + "gas": "2500000000", + "id": 999 + } } ], - [ - "to", + "size_estimate": 186, + "effects": [ { - "cl_type": { - "Option": { - "ByteArray": 32 - } - }, - "bytes": "012828282828282828282828282828282828282828282828282828282828282828", - "parsed": "2828282828282828282828282828282828282828282828282828282828282828" - } - ], - [ - "id", + "key": "account-hash-2c4a11c062a8a337bfc97e27fd66291caeb2c65865dcb5d3ef3759c4c97efecb", + "kind": { + "AddUInt64": 8 + } + }, { - "cl_type": { - "Option": "U64" - }, - "bytes": "01e703000000000000", - "parsed": 999 + "key": "deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1", + "kind": "Identity" } ] - ], - "target": "Native", - "entry_point": "Transfer", - "scheduling": "Standard" - }, - "approvals": [ - { - "signer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "signature": "012152c1eab67f63faa6a482ec4847ecd145c3b2c3e2affe763303ecb4ccf8618a1b2d24de7313fbf8a2ac1b5256471cc6bbf21745af15516331e5fc3d4a2fa201" } - ] - } - }, - "block_hash": "9ccc716f5f3c7ac238bf7aaad113c2add3586921a7966faffb3a5a253aa1d75e", - "block_height": 10, - "execution_result": { - "Version2": { - "Success": { - "effects": [ - { - "key": "account-hash-2c4a11c062a8a337bfc97e27fd66291caeb2c65865dcb5d3ef3759c4c97efecb", - "kind": { - "AddUInt64": 8 - } - }, - { - "key": "deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1", - "kind": "Identity" - } - ], - "transfers": [ - "transfer-5959595959595959595959595959595959595959595959595959595959595959", - "transfer-8282828282828282828282828282828282828282828282828282828282828282" - ], - "cost": "123456" } } } - } + } } ```
-## query_balance {#query-balance} +## query_balance This method allows you to query for the balance of a purse using a `PurseIdentifier` and `StateIdentifier`. |Parameter|Type|Description| |---------|----|-----------| |[purse_identifier](types_chain.md#purseidentifier)|Object|The identifier to obtain the purse corresponding to the balance query.| -|[state_identifier](types_chain.md#globalstateidentifier)|Object|The state identifier used for the query; if none is passed the tip of the chain will be used.| +|[state_identifier](types_chain.md#globalstateidentifier)|Object|The state identifier used for the query; if none is passed the tip of the chain will be used. (Optional)|
Example query_balance request -```bash +```json { "id": 1, "jsonrpc": "2.0", @@ -851,14 +911,97 @@ This method allows you to query for the balance of a purse using a `PurseIdentif Example query_balance result -```bash +```json + +{ + "jsonrpc": "2.0", + "id": -6143675785141640608, + "result": { + "name": "query_balance_result", + "value": { + "api_version": "2.0.0", + "balance": "123456" + } + } +} + +``` + +
+ +## query_balance_details + +This method allows you to query for full balance information using a `PurseIdentifier` and `StateIdentifier`. + +|Parameter|Type|Description| +|---------|----|-----------| +|[purse_identifier](types_chain.md#purseidentifier)|Object|The identifier to obtain the purse corresponding to the balance query.| +|[state_identifier](types_chain.md#globalstateidentifier)|Object|The state identifier used for the query; if none is passed the tip of the chain will be used. (Optional)| + +
+ +Example query_balance_details request + +```json +{ + "id": 1, + "jsonrpc": "2.0", + "method": "query_balance_details", + "params": [ + { + "name": "state_identifier", + "value": { + "BlockHash": "0707070707070707070707070707070707070707070707070707070707070707" + } + }, + { + "name": "purse_identifier", + "value": { + "main_purse_under_account_hash": "account-hash-0909090909090909090909090909090909090909090909090909090909090909" + } + } + ] +} + +``` + +
+ + +### `query_balance_details_result` + +|Parameter|Type|Description| +|---------|----|-----------| +|api_version|String|The RPC API version.| +|[available_balance](types_chain.md#u512)|Object|The available balance in motes (total balance - sum of all active holds).| +|[holds](types_chain.md#balanceholdwithproof)|Array|The holds active at the requested point in time.| +|[total_balance](types_chain.md#u512)|Object|The purses total balance, not considering holds.| +|`total_balance_proof|String|A proof that the given value is present in the Merkle trie.| + +
+ +Example query_balance_details result + +```json { "jsonrpc": "2.0", "id": -6143675785141640608, "result": { - "api_version": "1.0.0", - "balance": "1000000000000000000000000000000000" + "name": "query_balance_details_result", + "value": { + "api_version": "2.0.0", + "total_balance": "123456", + "available_balance": "123456", + "total_balance_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3", + "holds": [ + { + "time": 0, + "amount": "123456", + "proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3" + } + ] + } } } @@ -866,7 +1009,7 @@ This method allows you to query for the balance of a purse using a `PurseIdentif
-## query_global_state {#query-global-state} +## query_global_state This method allows for you to query for a value stored under certain keys in global state. You may query using either a [Block hash](../../concepts/design/casper-design.md#block_hash) or state root hash. @@ -874,25 +1017,34 @@ This method allows for you to query for a value stored under certain keys in glo |Parameter|Type|Description| |---------|----|-----------| -|[state_identifier](types_chain.md#globalstateidentifier)|Object|The identifier used for the query.| -|key|String|`casper_types::Key` as a formatted string.| -|path|Array|The path components starting from the key as base.| +|[key](types_chain.md#key)|String|The key as a formatted string, under which data can be stored in global state.| +|[state_identifier](types_chain.md#globalstateidentifier)|Object|The identifier used for the query. If not provided, the tip of the chain will be used. (Optional)| +|path|Array|The path components starting from the key as base. (Optional)|
Example query_global_state request -```bash +```json { "id": 1, "jsonrpc": "2.0", "method": "query_global_state", "params": [ - "deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1", - [], { - "BlockHash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb" + "name": "state_identifier", + "value": { + "BlockHash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42" + } + }, + { + "name": "key", + "value": "deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1" + }, + { + "name": "path", + "value": [] } ] } @@ -906,7 +1058,7 @@ This method allows for you to query for a value stored under certain keys in glo |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[block_header](types_chain.md#jsonblockheader)|Object|The Block header if a Block hash was provided. (Not required)| +|[block_header](types_chain.md#jsonblockheader)|Object|The Block header if a Block hash was provided. (Optional)| |[stored_value](types_chain.md#storedvalue)|Object|The stored value.| |[merkle_proof](types_chain.md#merkle-proof)|String|The merkle proof.| @@ -914,72 +1066,76 @@ This method allows for you to query for a value stored under certain keys in glo Example query_global_state result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", + "api_version": "2.0.0", "block_header": { - "accumulated_seed": "ac979f51525cfd979b14aa7dc0737c5154eabe0db9280eceaa8dc8d2905b20d5", - "body_hash": "cd502c5393a3c8b66d6979ad7857507c9baf5a8ba16ba99c28378d3a970fff42", - "era_end": { - "era_report": { + "Version2": { + "parent_hash": "0707070707070707070707070707070707070707070707070707070707070707", + "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", + "body_hash": "0505050505050505050505050505050505050505050505050505050505050505", + "random_bit": true, + "accumulated_seed": "ac979f51525cfd979b14aa7dc0737c5154eabe0db9280eceaa8dc8d2905b20d5", + "era_end": { "equivocators": [ "013b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29" ], "inactive_validators": [ "018139770ea87d175f56a35466c34c7ecccb8d8a91b4ee37a25df60f5b8fc9b394" ], - "rewards": [ + "next_era_validator_weights": [ + { + "validator": "013b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29", + "weight": "123" + }, { - "amount": 1000, - "validator": "018a88e3dd7409f195fd52db2d3cba5d72ca6709bf1d94121bf3748801b40f6f5c" + "validator": "016e7a1cdd29b0b78fd13af4c5598feff4ef2a97166e3ca6f2e4fbfccd80505bf1", + "weight": "456" + }, + { + "validator": "018a875fff1eb38451577acd5afee405456568dd7c89e090863a0557bc7af49f17", + "weight": "789" } - ] + ], + "rewards": {}, + "next_era_gas_price": 1 }, - "next_era_validator_weights": [ - { - "validator": "016e7a1cdd29b0b78fd13af4c5598feff4ef2a97166e3ca6f2e4fbfccd80505bf1", - "weight": "456" - }, - { - "validator": "018a875fff1eb38451577acd5afee405456568dd7c89e090863a0557bc7af49f17", - "weight": "789" - }, - { - "validator": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "weight": "123" - } - ] - }, - "era_id": 1, - "height": 10, - "parent_hash": "0707070707070707070707070707070707070707070707070707070707070707", - "protocol_version": "1.0.0", - "random_bit": true, - "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", - "timestamp": "2020-11-17T00:39:24.072Z" + "timestamp": "2020-11-17T00:39:24.072Z", + "era_id": 1, + "height": 10, + "protocol_version": "1.0.0", + "proposer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "current_gas_price": 1, + "last_switch_block_hash": "0909090909090909090909090909090909090909090909090909090909090909" + } }, - "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3", "stored_value": { "Account": { "account_hash": "account-hash-e94daaff79c2ab8d9c31d9c3058d7d0a0dd31204a5638dc1451fa67b2e3fb88c", - "action_thresholds": { - "deployment": 1, - "key_management": 1 - }, + "named_keys": [ + { + "name": "main_purse", + "key": "uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007" + } + ], + "main_purse": "uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007", "associated_keys": [ { "account_hash": "account-hash-e94daaff79c2ab8d9c31d9c3058d7d0a0dd31204a5638dc1451fa67b2e3fb88c", "weight": 1 } ], - "main_purse": "uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007", - "named_keys": [] + "action_thresholds": { + "deployment": 1, + "key_management": 1 + } } - } + }, + "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3" } } @@ -987,20 +1143,20 @@ This method allows for you to query for a value stored under certain keys in glo
-## state_get_account_info {#state-get-account-info} +## state_get_account_info -This method returns a JSON representation of an [Account](../../concepts/design/casper-design.md#accounts-head) from the network. The `block_identifier` must refer to a Block after the Account's creation, or the method will return an empty response. +This method returns a JSON representation of an [Account](../../concepts/design/casper-design.md#accounts-head) from the network at a given [Block](../../concepts/design/casper-design.md#block-structure-head). If you do not specify a `block_identifier`, you will receive the state of the account at the highest state root hash. The `block_identifier` must refer to a Block after the Account's creation, or the method will return an empty response. |Parameter|Type|Description| |---------|----|-----------| |[account_identifier](types_chain.md#AccountIdentifier)|String|The public key or account hash of the Account.| -|[block_identifier](types_chain.md#blockidentifier)|Object|The Block identifier.| +|[block_identifier](types_chain.md#blockidentifier)|Object|The Block hash. (Optional)|
Example state_get_account_info request -```bash +```json { "id": 1, @@ -1036,14 +1192,15 @@ This method returns a JSON representation of an [Account](../../concepts/design/ Example state_get_account_info result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { + "name": "state_get_account_info_result", "value": { - "api_version": "1.5.3", + "api_version": "2.0.0", "account": { "account_hash": "account-hash-e94daaff79c2ab8d9c31d9c3058d7d0a0dd31204a5638dc1451fa67b2e3fb88c", "named_keys": [ @@ -1073,7 +1230,7 @@ This method returns a JSON representation of an [Account](../../concepts/design/
-## state_get_dictionary_item {#state-get-dictionary-item} +## state_get_dictionary_item This method returns an item from a Dictionary. Every dictionary has a seed URef, findable by using a `dictionary_identifier`. The address of a stored value is the blake2b hash of the seed URef and the byte representation of the dictionary key. @@ -1088,7 +1245,7 @@ You may query a stored value directly using the dictionary address. Example state_get_dictionary_item request -```bash +```json { "id": 1, @@ -1096,19 +1253,25 @@ You may query a stored value directly using the dictionary address. "method": "state_get_dictionary_item", "params": [ { - "URef": { - "dictionary_item_key": "a_unique_entry_identifier", - "seed_uref": "uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007" - } + "name": "state_root_hash", + "value": "0808080808080808080808080808080808080808080808080808080808080808" }, - "0808080808080808080808080808080808080808080808080808080808080808" + { + "name": "dictionary_identifier", + "value": { + "URef": { + "seed_uref": "uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007", + "dictionary_item_key": "a_unique_entry_identifier" + } + } + } ] } ```
- + ### `state_get_dictionary_item_result` |Parameter|Type|Description| @@ -1122,22 +1285,142 @@ You may query a stored value directly using the dictionary address. Example state_get_dictionary_item result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "dictionary_key": "dictionary-67518854aa916c97d4e53df8570c8217ccc259da2721b692102d76acd0ee8d1f", - "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3", - "stored_value": { - "CLValue": { - "bytes": "0100000000000000", - "cl_type": "U64", - "parsed": 1 + "name": "state_get_dictionary_item_result", + "value": { + "api_version": "2.0.0", + "dictionary_key": "dictionary-67518854aa916c97d4e53df8570c8217ccc259da2721b692102d76acd0ee8d1f", + "stored_value": { + "CLValue": { + "cl_type": "U64", + "bytes": "0100000000000000", + "parsed": 1 + } + }, + "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3" + } + } +} + +``` + + + +## state_get_entity + +This method returns a JSON representation of an [AddressableEntity](types_chain.md#addressablentity) from the network at a given [Block](../../concepts/design/casper-design.md#block-structure-head). If you do not specify a `block_identifier`, you will receive the state of the entity at the highest state root hash. The `block_identifier` must refer to a Block after the entity's creation, or the method will return an empty response. + +|Parameter|Type|Description| +|---------|----|-----------| +|[entity_identifier](types_chain.md#entityidentifier)|String|Identifier of an addressable entity.| +|[block_identifier](types_chain.md#blockidentifier)|Object|The Block hash. (Optional)| + +
+ +Example state_get_entity request + +```json + +{ + "id": 1, + "jsonrpc": "2.0", + "method": "state_get_entity", + "params": [ + { + "name": "entity_identifier", + "value": { + "EntityAddr": "entity-account-0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "name": "block_identifier", + "value": { + "Hash": "0707070707070707070707070707070707070707070707070707070707070707" } } + ] +} + +``` + +
+ +### `state_get_entity_result` + +|Parameter|Type|Description| +|---------|----|-----------| +|api_version|String|The RPC API version.| +|[entity](types_chain.md##addressableentity)|Object|A JSON representation of the AddressableEntity.| +|[merkle_proof](types_chain.md#merkleproof)|String|The merkle proof.| + +
+ +Example state_get_entity result + +```json + +{ + "id": 1, + "jsonrpc": "2.0", + "result": { + "name": "state_get_entity_result", + "value": { + "api_version": "2.0.0", + "entity": { + "AddressableEntity": { + "entity": { + "protocol_version": "2.0.0", + "entity_kind": { + "Account": "account-hash-e94daaff79c2ab8d9c31d9c3058d7d0a0dd31204a5638dc1451fa67b2e3fb88c" + }, + "package_hash": "package-0000000000000000000000000000000000000000000000000000000000000000", + "byte_code_hash": "byte-code-0000000000000000000000000000000000000000000000000000000000000000", + "main_purse": "uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007", + "associated_keys": [ + { + "account_hash": "account-hash-e94daaff79c2ab8d9c31d9c3058d7d0a0dd31204a5638dc1451fa67b2e3fb88c", + "weight": 1 + } + ], + "action_thresholds": { + "deployment": 1, + "upgrade_management": 1, + "key_management": 1 + }, + "message_topics": [ + { + "topic_name": "topic", + "topic_name_hash": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + }, + "named_keys": [ + { + "name": "key", + "key": "hash-0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "entry_points": [ + { + "V1CasperVm": { + "name": "entry_point", + "args": [], + "ret": "Unit", + "access": "Public", + "entry_point_type": "Caller", + "entry_point_payment": "Caller" + } + } + ] + } + }, + "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3" + } } } @@ -1147,14 +1430,13 @@ You may query a stored value directly using the dictionary address. ------ - -# Node Informational JSON-RPC Methods {#node-informational} +# Node Informational JSON-RPC Methods The following methods return information from a node on a Casper network. The responses return information specific to the queried node, and as such, will vary. --- -## info_get_peers {#info-get-peers} +## info_get_peers This method returns a list of peers connected to the node. @@ -1162,7 +1444,7 @@ This method returns a list of peers connected to the node. Example info_get_peers request -```bash +```json { "id": 1, @@ -1186,19 +1468,22 @@ This method returns a list of peers connected to the node. Example info_get_peers result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "peers": [ - { - "address": "127.0.0.1:54321", - "node_id": "tls:0101..0101" - } - ] + "name": "info_get_peers_result", + "value": { + "api_version": "2.0.0", + "peers": [ + { + "node_id": "tls:0101..0101", + "address": "127.0.0.1:54321" + } + ] + } } } @@ -1206,7 +1491,7 @@ This method returns a list of peers connected to the node.
-## info_get_status {#info-get-status} +## info_get_status This method returns the current status of a node. @@ -1214,7 +1499,7 @@ This method returns the current status of a node. Example info_get_status request -```bash +```json { "id": 1, @@ -1236,14 +1521,14 @@ This method returns the current status of a node. |[block_sync](types_chain.md#BlockSynchronizerStatus)|Object|The status of the block synchronizer builders.| |build_version|String|The compiled node version.| |chainspec_name|String|The chainspec name, used to identify the currently connected network.| -|[last_added_block_info](types_chain.md#minimalblockinfo)|Object|The minimal info of the last Block from the linear chain.| +|[last_added_block_info](types_chain.md#minimalblockinfo)|Object|The minimal info of the last Block from the linear chain. (Optional)| |[last_progress](types_chain.md#timestamp)|String|Timestamp of the last recorded progress in the reactor.| -|[latest_switch_block_hash](types_chain.md#blockhash)|Object|The hash of the latest switch block.| -|[next_upgrade](types_chain.md#nextupgrade)|Object|Information about the next scheduled upgrade.| -|[our_public_signing_key](types_chain.md#publickey)|String|Our public signing key.| +|[latest_switch_block_hash](types_chain.md#blockhash)|Object|The hash of the latest switch block. (Optional)| +|[next_upgrade](types_chain.md#nextupgrade)|Object|Information about the next scheduled upgrade. (Optional)| +|[our_public_signing_key](types_chain.md#publickey)|String|Our public signing key. (Optional)| |[peers](types_chain.md#peersmap)|Array|The node ID and network address of each connected peer.| |[reactor_state](types_chain.md#reactorstate)|String|The current state of the node reactor.| -|[round_length](types_chain.md#timediff)|Integer|The next round length if this node is a validator. A round length is the amount of time it takes to reach consensus on proposing a Block.| +|[round_length](types_chain.md#timediff)|Integer|The next round length if this node is a validator. A round length is the amount of time it takes to reach consensus on proposing a Block. (Optional)| |[starting_state_root_hash](types_chain.md#digest)|String|The state root hash used at the start of the current session.| |[uptime](types_chain.md#timediff)|Integer|Time that passed since the node has started.| @@ -1251,62 +1536,62 @@ This method returns the current status of a node. Example info_get_status result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "name": "info_get_status_example_result", - "value": { - "api_version": "2.0.0", - "peers": [ - { - "node_id": "tls:0101..0101", - "address": "127.0.0.1:54321" - } - ], - "build_version": "1.0.0-xxxxxxxxx@DEBUG", - "chainspec_name": "casper-example", - "starting_state_root_hash": "0000000000000000000000000000000000000000000000000000000000000000", - "last_added_block_info": { - "hash": "6a2dad7a71608f78e9b6b5f97eed60a374e75e70cb8cc925e6681c61c84165bd", - "timestamp": "2020-11-17T00:39:24.072Z", - "era_id": 1, - "height": 10, - "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", - "creator": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" - }, - "our_public_signing_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "round_length": "1m 5s 536ms", - "next_upgrade": { - "activation_point": 42, - "protocol_version": "2.0.1" - }, - "uptime": "13s", - "reactor_state": "Initialize", - "last_progress": "1970-01-01T00:00:00.000Z", - "available_block_range": { - "low": 0, - "high": 0 - }, - "block_sync": { - "historical": { - "block_hash": "16ddf28e2b3d2e17f4cef36f8b58827eca917af225d139b0c77df3b4a67dc55e", - "block_height": 40, - "acquisition_state": "have strict finality(40) for: block hash 16dd..c55e" - }, - "forward": { - "block_hash": "59907b1e32a9158169c4d89d9ce5ac9164fc31240bfcfb0969227ece06d74983", - "block_height": 6701, - "acquisition_state": "have block body(6701) for: block hash 5990..4983" - } + "name": "info_get_status_result", + "value": { + "api_version": "2.0.0", + "peers": [ + { + "node_id": "tls:0101..0101", + "address": "127.0.0.1:54321" + } + ], + "build_version": "1.0.0-xxxxxxxxx@DEBUG", + "chainspec_name": "casper-example", + "starting_state_root_hash": "0000000000000000000000000000000000000000000000000000000000000000", + "last_added_block_info": { + "hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42", + "timestamp": "2020-11-17T00:39:24.072Z", + "era_id": 1, + "height": 10, + "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", + "creator": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" + }, + "our_public_signing_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "round_length": "1m 5s 536ms", + "next_upgrade": { + "activation_point": 42, + "protocol_version": "2.0.1" + }, + "uptime": "13s", + "reactor_state": "Initialize", + "last_progress": "1970-01-01T00:00:00.000Z", + "available_block_range": { + "low": 0, + "high": 0 + }, + "block_sync": { + "historical": { + "block_hash": "16ddf28e2b3d2e17f4cef36f8b58827eca917af225d139b0c77df3b4a67dc55e", + "block_height": 40, + "acquisition_state": "have strict finality(40) for: block hash 16dd..c55e" }, - "latest_switch_block_hash": "0000000000000000000000000000000000000000000000000000000000000000" - } + "forward": { + "block_hash": "59907b1e32a9158169c4d89d9ce5ac9164fc31240bfcfb0969227ece06d74983", + "block_height": 6701, + "acquisition_state": "have block body(6701) for: block hash 5990..4983" + } + }, + "latest_switch_block_hash": "0000000000000000000000000000000000000000000000000000000000000000" } } } +} ``` diff --git a/source/docs/casper/developers/json-rpc/json-rpc-pos.md b/source/docs/casper/developers/json-rpc/json-rpc-pos.md index 946f270ceb..8a5a690b30 100644 --- a/source/docs/casper/developers/json-rpc/json-rpc-pos.md +++ b/source/docs/casper/developers/json-rpc/json-rpc-pos.md @@ -1,22 +1,22 @@ -# Proof-of-Stake JSON-RPC Methods {#proof-of-stake} +# Proof-of-Stake JSON-RPC Methods The following methods pertain to the Proof-of-Stake functionality of a Casper network. They return information related to auctions, bids and validators. This information is necessary for users involved with node operations and validation. --- -## state_get_auction_info {#state-get-auction-info} +## state_get_auction_info -This method returns the [bids](../../concepts/economics/consensus.md#bids) and [validators](../../concepts/glossary/V.md#validator) as of either a specific Block (by height or hash). If you do not provide a `block_identifier`, `state_get_auction_info` will return information from the most recent Block. +This method returns the [bids](../../concepts/economics/consensus.md#bids) and [validators](../../concepts/glossary/V.md#validator) from a specific Block (by height or hash). If you do not provide a `block_identifier`, `state_get_auction_info` will return information from the most recent Block. |Parameter|Type|Description| |---------|----|-----------| -|[block_identifier](./types_chain.md#blockidentifier)|Object|The Block identifier.| +|[block_identifier](./types_chain.md#blockidentifier)|Object|The Block identifier. (Optional)|
Example state_get_auction_info request -```bash +```json { "id": 1, @@ -24,7 +24,10 @@ This method returns the [bids](../../concepts/economics/consensus.md#bids) and [ "method": "state_get_auction_info", "params": [ { - "Hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb" + "name": "block_identifier", + "value": { + "Hash": "0707070707070707070707070707070707070707070707070707070707070707" + } } ] } @@ -44,39 +47,55 @@ This method returns the [bids](../../concepts/economics/consensus.md#bids) and [ Example state_get_auction_info result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "auction_state": { - "bids": [ - { - "bid": { - "bonding_purse": "uref-fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa-007", - "delegation_rate": 0, - "delegators": [], - "inactive": false, - "staked_amount": "10" - }, - "public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61" - } - ], - "block_height": 10, - "era_validators": [ - { - "era_id": 10, - "validator_weights": [ - { - "public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61", - "weight": "10" + "name": "state_get_auction_info_result", + "value": { + "api_version": "2.0.0", + "auction_state": { + "state_root_hash": "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b", + "block_height": 10, + "era_validators": [ + { + "era_id": 10, + "validator_weights": [ + { + "public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61", + "weight": "10" + } + ] + } + ], + "bids": [ + { + "public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61", + "bid": { + "validator_public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61", + "bonding_purse": "uref-fafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafa-007", + "staked_amount": "20", + "delegation_rate": 0, + "vesting_schedule": null, + "delegators": [ + { + "delegator_public_key": "014508a07aa941707f3eb2db94c8897a80b2c1197476b6de213ac273df7d86c4ff", + "delegator": { + "delegator_public_key": "014508a07aa941707f3eb2db94c8897a80b2c1197476b6de213ac273df7d86c4ff", + "staked_amount": "10", + "bonding_purse": "uref-fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb-007", + "validator_public_key": "01197f6b23e16c8532c6abc838facd5ea789be0c76b2920334039bfa8b3d368d61", + "vesting_schedule": null + } + } + ], + "inactive": false } - ] - } - ], - "state_root_hash": "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" + } + ] + } } } } @@ -86,7 +105,7 @@ This method returns the [bids](../../concepts/economics/consensus.md#bids) and [
-## info_get_validator_changes {#info-get-validator-changes} +## info_get_validator_changes This method returns status changes of active validators. Listed changes occurred during the `EraId` contained within the response itself. A validator may show more than one change in a single era. @@ -104,7 +123,7 @@ Potential change types: Example info_get_validator_changes request -```bash +```json { "id": 1, @@ -130,24 +149,27 @@ If no changes occurred in the current era, `info_get_validator_changes` will ret Example info_get_validator_changes result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "changes": [ - { - "public_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "status_changes": [ - { - "era_id": 1, - "validator_change": "Added" - } - ] - } - ] + "name": "info_get_validator_changes_result", + "value": { + "api_version": "2.0.0", + "changes": [ + { + "public_key": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "status_changes": [ + { + "era_id": 1, + "validator_change": "Added" + } + ] + } + ] + } } } @@ -167,7 +189,7 @@ This method returns an EraInfo from the network. Only the last Block in an `era` Example chain_get_era_info_by_switch_block request -```bash +```json { "id": 1, @@ -175,7 +197,10 @@ This method returns an EraInfo from the network. Only the last Block in an `era` "method": "chain_get_era_info_by_switch_block", "params": [ { - "Hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb" + "name": "block_identifier", + "value": { + "Hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42" + } } ] } @@ -189,42 +214,45 @@ This method returns an EraInfo from the network. Only the last Block in an `era` |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[era_summary](./types_chain.md#erasummary)|Object|The era summary (If found).| +|[era_summary](./types_chain.md#erasummary)|Object|The era summary, if found. (Optional)|
Example chain_get_era_info_by_switch_block -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "era_summary": { - "block_hash": "13c2d7a68ecdd4b74bf4393c88915c836c863fc4bf11d7f2bd930a1bbccacdcb", - "era_id": 42, - "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3", - "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", - "stored_value": { - "EraInfo": { - "seigniorage_allocations": [ - { - "Delegator": { - "amount": "1000", - "delegator_public_key": "01e1b46a25baa8a5c28beb3c9cfb79b572effa04076f00befa57eb70b016153f18", - "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876" - } - }, - { - "Validator": { - "amount": "2000", - "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876" + "name": "chain_get_era_info_by_switch_block_result", + "value": { + "api_version": "2.0.0", + "era_summary": { + "block_hash": "0744fcb72af43c5cc372039bc5a8bfee48808a9ce414acc0d6338a628c20eb42", + "era_id": 42, + "stored_value": { + "EraInfo": { + "seigniorage_allocations": [ + { + "Delegator": { + "delegator_public_key": "01e1b46a25baa8a5c28beb3c9cfb79b572effa04076f00befa57eb70b016153f18", + "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876", + "amount": "1000" + } + }, + { + "Validator": { + "validator_public_key": "012a1732addc639ea43a89e25d3ad912e40232156dcaa4b9edfc709f43d2fb0876", + "amount": "2000" + } } - } - ] - } + ] + } + }, + "state_root_hash": "0808080808080808080808080808080808080808080808080808080808080808", + "merkle_proof": "01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3" } } } diff --git a/source/docs/casper/developers/json-rpc/json-rpc-transactional.md b/source/docs/casper/developers/json-rpc/json-rpc-transactional.md index d9cc930351..a8b7735a22 100644 --- a/source/docs/casper/developers/json-rpc/json-rpc-transactional.md +++ b/source/docs/casper/developers/json-rpc/json-rpc-transactional.md @@ -1,22 +1,26 @@ -# Transactional JSON-RPC Methods {#transactional} +# Transactional JSON-RPC Methods --- -## account_put_deploy {#account-put-deploy} +## account_put_deploy -This is the only means by which users can send their compiled Wasm (as part of a Deploy) to a node on a Casper network. The request takes in the [Deploy](../../concepts/design/casper-design.md/#execution-semantics-deploys) as a parameter, prior to sending it to a node on a network for execution. +:::caution + +**DEPRECATED**: Use [account_put_transaction](#account-put-transaction) instead. + +::: + +This endpoint allows sending a deploy to be executed by the network. |Parameter|Type|Description| |---------|----|-----------| |[deploy](./types_chain.md#deploy)|Object|A Deploy consists of an item containing a smart contract along with the requester's signature(s).| -> **Note**: You can find a list of [trusted peers](../../operators/setup/joining.md/#known-addresses) in the network's configuration file, `config.toml`. Here is an [example config.toml](https://github.com/casper-network/casper-node/blob/dev/resources/production/config-example.toml#L131). You may send deploys to one of the trusted nodes or use them to query other online nodes. -
Example account_put_deploy request -```bash +```json { "id": 1, @@ -24,58 +28,56 @@ This is the only means by which users can send their compiled Wasm (as part of a "method": "account_put_deploy", "params": [ { - "approvals": [ - { - "signer": "01f8b29f39c38600ecb3bbb082951e04ab63a4ad4f7c9048a5057e461a5a8d58a5", - "signature": "019d6ef5c62c80ad4e50df343fba6f0fced17dea4c65e7976f66335ffcfcde2a7f02e928c8507cef3c76c3151e0e9cc9c3f7838b9f7a99ac4be5522ca092841100" - } - ], - "hash": "00a8677713222df88b6988926e0b14adeda6c663957f5075003395da4e5c6888", - "header": { - "account": "01f8b29f39c38600ecb3bbb082951e04ab63a4ad4f7c9048a5057e461a5a8d58a5", - "body_hash": "145ae09d6da5bc290051db8cb7132a41a30473d5900eaaf409d92b666325ca00", - "chain_name": "casper-net-1", - "dependencies": [ - "0101010101010101010101010101010101010101010101010101010101010101" - ], - "gas_price": 1, - "timestamp": "2023-09-26T14:07:10.024Z", - "ttl": "1h" - }, - "payment": { - "StoredContractByName": { - "args": [ - [ - "amount", - { - "bytes": "0400f90295", - "cl_type": "U512" - } - ] + "name": "deploy", + "value": { + "hash": "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa", + "header": { + "account": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "timestamp": "2020-11-17T00:39:24.072Z", + "ttl": "1h", + "gas_price": 1, + "body_hash": "d53cf72d17278fd47d399013ca389c50d589352f1a12593c0b8e01872a641b50", + "dependencies": [ + "0101010101010101010101010101010101010101010101010101010101010101" ], - "entry_point": "example-entry-point", - "name": "casper-example" - } - }, - "session": { - "Transfer": { - "args": [ - [ - "amount", - { - "cl_type": "U512", - "bytes": "0400f90295" - } - ], - [ - "target", - { - "cl_type": "URef", - "bytes": "09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db07" - } + "chain_name": "casper-example" + }, + "payment": { + "StoredContractByName": { + "name": "casper-example", + "entry_point": "example-entry-point", + "args": [ + [ + "amount", + { + "cl_type": "I32", + "bytes": "e8030000", + "parsed": 1000 + } + ] ] - ] - } + } + }, + "session": { + "Transfer": { + "args": [ + [ + "amount", + { + "cl_type": "I32", + "bytes": "e8030000", + "parsed": 1000 + } + ] + ] + } + }, + "approvals": [ + { + "signer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "signature": "014c1a89f92e29dd74fc648f741137d9caf4edba97c5f9799ce0c9aa6b0c9b58db368c64098603dbecef645774c05dff057cb1f91f2cf390bbacce78aa6f084007" + } + ] } } ] @@ -87,7 +89,7 @@ This is the only means by which users can send their compiled Wasm (as part of a ### `account_put_deploy_result` -The result contains the [deploy_hash](./types_chain.md#deployhash), which is the primary identifier of a Deploy within a Casper network. +The result contains the RPC API version and a [deploy_hash](./types_chain.md#deployhash), which is the primary identifier of a Deploy within a Casper network. |Parameter|Type|Description| |---------|----|-----------| @@ -98,14 +100,17 @@ The result contains the [deploy_hash](./types_chain.md#deployhash), which is the Example account_put_deploy result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "api_version": "1.4.13", - "deploy_hash": "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa" + "name": "account_put_deploy_result", + "value": { + "api_version": "2.0.0", + "deploy_hash": "5c9b3b099c1378aa8e4a5f07f59ff1fcdc69a83179427c7e67ae0377d94d93fa" + } } } @@ -113,19 +118,21 @@ The result contains the [deploy_hash](./types_chain.md#deployhash), which is the
-## account_put_transaction {#account-put-transaction} +## account_put_transaction -This endpoint allows sending a transaction to be executed by the network. +This is the recommended means by which users can send their compiled Wasm (as part of a Transaction) to a node on a Casper network. The request takes in the [transaction](./types_chain.md#transaction) as a parameter, prior to sending it to a node on a network for execution. |Parameter|Type|Description| |---------|----|-----------| |[transaction](./types_chain.md#transaction)|Object|A transaction consists of an item containing a Deploy and a [`Transaction`](./types_chain.md#transaction) along with the requester's signature(s).| +> **Note**: You can find a list of [trusted peers](../../operators/setup/joining.md/#known-addresses) in the network's configuration file, `config.toml`. Here is an [example config.toml](https://github.com/casper-network/casper-node/blob/dev/resources/production/config-example.toml#L131). You may send transactions to one of the trusted nodes or use them to query other online nodes. +
Example account_put_transaction request -```bash +```json { "id": 1, "jsonrpc": "2.0", @@ -135,16 +142,17 @@ This endpoint allows sending a transaction to be executed by the network. "name": "transaction", "value": { "Version1": { - "hash": "6aaf4a54499e3757eb4be6967503dcc431e4623bf8bb57a14c1729a114a1aaa2", + "hash": "f5582cb81a5abda63ebaa4edb3b05210ecbd63ffb8dd17bfbeb3b867f4014468", "header": { "chain_name": "casper-example", "timestamp": "2020-11-17T00:39:24.072Z", "ttl": "1h", - "body_hash": "d2433e28993036fbdf7c963cd753893fefe619e7dbb5c0cafa5cb03bcf3ff9db", + "body_hash": "aa24833ffbf31d62c8c8c4265349e7c09cd71952fcbce6f7b12daf5e340bf2cc", "pricing_mode": { - "GasPriceMultiplier": 1 + "Fixed": { + "gas_price_tolerance": 5 + } }, - "payment_amount": null, "initiator_addr": { "PublicKey": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" } @@ -154,8 +162,10 @@ This endpoint allows sending a transaction to be executed by the network. [ "source", { - "cl_type": "URef", - "bytes": "0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a07", + "cl_type": { + "Option": "URef" + }, + "bytes": "010a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a07", "parsed": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007" } ], @@ -175,18 +185,6 @@ This endpoint allows sending a transaction to be executed by the network. "parsed": "30000000000" } ], - [ - "to", - { - "cl_type": { - "Option": { - "ByteArray": 32 - } - }, - "bytes": "012828282828282828282828282828282828282828282828282828282828282828", - "parsed": "2828282828282828282828282828282828282828282828282828282828282828" - } - ], [ "id", { @@ -200,12 +198,13 @@ This endpoint allows sending a transaction to be executed by the network. ], "target": "Native", "entry_point": "Transfer", + "transaction_category": 0, "scheduling": "Standard" }, "approvals": [ { "signer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", - "signature": "012152c1eab67f63faa6a482ec4847ecd145c3b2c3e2affe763303ecb4ccf8618a1b2d24de7313fbf8a2ac1b5256471cc6bbf21745af15516331e5fc3d4a2fa201" + "signature": "0137d3f468d8f8a6e63f4110d79be29b8c8428e9cd858a92049660e7851ae16a299640d1fc1c930ab6cb424f1a6eec0b194df74bede14f4af1b5133106f1280d0b" } ] } @@ -220,7 +219,7 @@ This endpoint allows sending a transaction to be executed by the network. ### `account_put_transaction_result` -The result contains the [transaction_hash](./types_chain.md#transactionhash), which is the primary identifier of a transaction within a Casper network. +The result contains the RPC API version and the [transaction_hash](./types_chain.md#transactionhash), which is the primary identifier of a transaction within a Casper network. |Parameter|Type|Description| |---------|----|-----------| @@ -231,47 +230,49 @@ The result contains the [transaction_hash](./types_chain.md#transactionhash), wh Example account_put_transaction result -```bash +```json { "id": 1, "jsonrpc": "2.0", "result": { - "name": "account_put_transaction_example_result", - "value": { - "api_version": "1.5.3", - "transaction_hash": { - "Version1": "6aaf4a54499e3757eb4be6967503dcc431e4623bf8bb57a14c1729a114a1aaa2" - } - } - } + "name": "account_put_transaction_result", + "value": { + "api_version": "2.0.0", + "transaction_hash": { + "Version1": "f5582cb81a5abda63ebaa4edb3b05210ecbd63ffb8dd17bfbeb3b867f4014468" + } + } + } } ```
-## speculative_exec {#speculative_exec} +## speculative_exec + +:::caution -The `speculative_exec` endpoint provides a method to execute a `Deploy` without committing its execution effects to global state. By default, `speculative_exec` is disabled on a node. Sending a request to a node with the endpoint disabled will result in an error message. If enabled, `speculative_exec` operates on a separate port from the primary JSON-RPC, using 7778. +**DEPRECATED**: Use [speculative_exec_txn](#speculative-exec-txn) instead. -`speculative_exec` executes a Deploy at a specified block. In the case of this endpoint, the execution effects are not committed to global state. As such, it can be used for observing the execution effects of a Deploy without paying for the execution of the Deploy. +::: + +The `speculative_exec` endpoint allows executing a `Deploy` without committing its execution effects to global state. By default, `speculative_exec` is turned off on a node. Sending a request to a node with the endpoint unavailable will result in an error message. Find out if this endpoint is available and which port to access. The port is separate from the node's binary port and the default is 7778. |Parameter|Type|Description| |---------|----|-----------| -|[block_identifier](./types_chain.md#blockidentifier)|Object|The block hash or height on top of which to execute the deploy. If not supplied,the most recent block will be used.| |[deploy](./types_chain.md#deploy)|Object|A Deploy consists of an item containing a smart contract along with the requester's signature(s).|
Example speculative_exec request -```bash +```json { "jsonrpc": "2.0", "method": "speculative_exec", "params": { - "block_identifier": null, "deploy": { "hash": "b6aa46333fb858deee7f259a5bca581251c6200a5d902aeb1244c3a7169b5971", "header": { @@ -347,302 +348,644 @@ The `speculative_exec` endpoint provides a method to execute a `Deploy` without ### `speculative_exec_result` -The result contains the hash of the targeted block and the results of the execution. +The result contains the RPC API version and the speculative execution result. |Parameter|Type|Description| |---------|----|-----------| |api_version|String|The RPC API version.| -|[block_hash](./types_chain.md#blockhash)|Object|The Block hash on top of which the deploy was executed.| |[execution_results](./types_chain.md#executionresult)|Object|The map of Block hash to execution result.|
Example speculative_exec result -```bash +```json { "jsonrpc": "2.0", - "id": -8801853076373554652, + "id": 1, "result": { - "api_version": "1.5.0", - "block_hash": "ff862326b08702a5089d64e32100537b7ff984cac4c0ba6d1c561f7c47125f76", - "execution_result": { - "Success": { - "effect": { - "operations": [], - "transforms": [ - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "account-hash-f466e7f5f9240fb577d1d4c650c4063752553406dff7aa24b4822ba2b72e5b65", - "transform": "Identity" - }, - { - "key": "account-hash-f466e7f5f9240fb577d1d4c650c4063752553406dff7aa24b4822ba2b72e5b65", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-0a300922655180354a9ee92b808c7b45b08e5b01d9da0bac9a9b3415bcebbf8d", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-59c6451dd58463708fa0b122e97114f07fa5f609229c9d67ac9426935416fbeb", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "balance-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678", - "transform": "Identity" - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": "Identity" - }, - { - "key": "balance-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678", - "transform": { - "WriteCLValue": { - "cl_type": "U512", - "bytes": "05f0e630ed87", - "parsed": "583799990000" - } - } - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": { - "AddUInt512": "100000000" - } - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "account-hash-f466e7f5f9240fb577d1d4c650c4063752553406dff7aa24b4822ba2b72e5b65", - "transform": "Identity" - }, - { - "key": "account-hash-f466e7f5f9240fb577d1d4c650c4063752553406dff7aa24b4822ba2b72e5b65", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-0a300922655180354a9ee92b808c7b45b08e5b01d9da0bac9a9b3415bcebbf8d", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-59c6451dd58463708fa0b122e97114f07fa5f609229c9d67ac9426935416fbeb", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "balance-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678", - "transform": "Identity" - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": "Identity" - }, - { - "key": "balance-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678", - "transform": { - "WriteCLValue": { - "cl_type": "U512", - "bytes": "05f0e630ed87", - "parsed": "583799990000" - } - } - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": { - "AddUInt512": "100000000" - } - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-59c6451dd58463708fa0b122e97114f07fa5f609229c9d67ac9426935416fbeb", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "balance-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678", - "transform": "Identity" - }, - { - "key": "balance-92ec6dfbdf151e20b55c89e0a327959cf6e5b091c5f2b39201c1858e2943f3bd", - "transform": "Identity" - }, - { - "key": "balance-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678", - "transform": { - "WriteCLValue": { - "cl_type": "U512", - "bytes": "05f0ed2d5887", - "parsed": "581299990000" - } - } - }, - { - "key": "balance-92ec6dfbdf151e20b55c89e0a327959cf6e5b091c5f2b39201c1858e2943f3bd", - "transform": { - "AddUInt512": "2500000000" + "name": "speculative_exec_result", + "value": { + "api_version": "2.0.0", + "execution_result": { + "block_hash": "b597865a5f96ea23932173601bf6b170a482f562f6dd3598b2d37a86c1f01371", + "transfers": [], + "limit": "100000000000", + "consumed": "23289743502", + "effects": [ + { + "key": "uref-65d264188c3cf9e61862415424c99900ec1c858f168d94d98b332fe738bf2249-000", + "kind": { + "Write": { + "CLValue": { + "cl_type": "Unit", + "bytes": "", + "parsed": null + } + } + } + }, + { + "key": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "kind": { + "Write": { + "Package": { + "versions": [], + "disabled_versions": [], + "groups": [], + "lock_status": "Unlocked" + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-7f292691d790433e131a5ea69c70b85a959a454f5d928de437b11bf4e7c06930", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "10154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "parsed": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b" + }, + "name": { + "cl_type": "String", + "bytes": "19000000746573745f7061796d656e745f7061636b6167655f68617368", + "parsed": "test_payment_package_hash" + } + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-814d93d21458dd90914dba42395ec9c075bc105cf3ef7ae0215f2107f3b47848", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "0265d264188c3cf9e61862415424c99900ec1c858f168d94d98b332fe738bf224907", + "parsed": "uref-65d264188c3cf9e61862415424c99900ec1c858f168d94d98b332fe738bf2249-007" + }, + "name": { + "cl_type": "String", + "bytes": "13000000746573745f7061796d656e745f616363657373", + "parsed": "test_payment_access" + } + } + } + } + }, + { + "key": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "kind": "Identity" + }, + { + "key": "entity-system-63448411a9dac7fd2e4a1dc9287ddb95b6f26ebe549b1387e44685d6b56dab08", + "kind": "Identity" + }, + { + "key": "package-63227f4db8d0d09e3b4b64416125ac35023e1054e38127780ec241b2b60d8b3d", + "kind": "Identity" + }, + { + "key": "entry-point-v1-entity-system-63448411a9dac7fd2e4a1dc9287ddb95b6f26ebe549b1387e44685d6b56dab08-21bddc7e4379ba445c7118cb51962954e0d1e5aa5cacc0c4ff6095b57eb9fb33", + "kind": "Identity" + }, + { + "key": "uref-7a9d9c0c33540e9fd4c1245f6ac687c7eacf98ac1072591adc3f83332a909d86-000", + "kind": { + "Write": { + "CLValue": { + "cl_type": "Unit", + "bytes": "", + "parsed": null + } + } + } + }, + { + "key": "balance-7a9d9c0c33540e9fd4c1245f6ac687c7eacf98ac1072591adc3f83332a909d86", + "kind": { + "Write": { + "CLValue": { + "cl_type": "U512", + "bytes": "00", + "parsed": "0" + } + } + } + }, + { + "key": "byte-code-v1-wasm-9639481569c3940ce272402f0e9bc0ea535435ea9ffc18d8696e4af02c841354", + "kind": { + "Write": { + "ByteCode": { + "kind": "V1CasperWasm", + "bytes": "0061736d0100000001540c60027f7f017f60017f0060037f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60037f7f7f0060047f7f7f7f0060017f017f60000060057f7f7f7f7f017f60027f7f000289020a03656e760d6361737065725f726576657274000103656e76196361737065725f6765745f6e616d65645f6172675f73697a65000203656e76146361737065725f6765745f6e616d65645f617267000303656e76156361737065725f6765745f6d61696e5f7075727365000103656e761a6361737065725f6765745f73797374656d5f636f6e7472616374000203656e76146361737065725f63616c6c5f636f6e7472616374000403656e76176361737065725f726561645f686f73745f627566666572000203656e76236361737065725f7472616e736665725f66726f6d5f70757273655f746f5f7075727365000503656e76066d656d6f72790201114003656e760367617300010324230108080809080006060a080b07090b090701070008000802020202080907070008000804050170010808060e027f01418080c0000b7f0141000b070701037061790025090d010041010b071a262a2b2728290afc970123270041d4ab0810082000230141016a2401230141f4034b0440000b100a230141016b24011000000b240041a6960410082000230141046a2401230141f4034b0440000b100c230141046b24010b1b0041d8221008200041187441187541027441c481c0006a2802000bd20501027f41da880410082000410876210141012102024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041ff01710e3635000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334350b41a604100841020f0b41a604100841030f0b41a604100841040f0b41a604100841050f0b41a604100841060f0b41a604100841070f0b41a604100841080f0b41a604100841090f0b41a6041008410a0f0b41a6041008410b0f0b41a6041008410c0f0b41a6041008410d0f0b41a6041008410e0f0b41a6041008410f0f0b41a604100841100f0b41a604100841110f0b41a604100841120f0b41a604100841130f0b41a604100841140f0b41a604100841150f0b41a604100841160f0b41a604100841170f0b41a604100841180f0b41a604100841190f0b41a6041008411a0f0b41a6041008411b0f0b41a6041008411c0f0b41a6041008411d0f0b41a6041008411e0f0b41a6041008411f0f0b41a604100841200f0b41a604100841210f0b41a604100841220f0b41a604100841230f0b41a604100841240f0b41a604100841250f0b41a604100841260f0b41a604100841270f0b41a604100841280f0b41f20c1008200141ff01714180f803720f0b41f20c1008200141ff01714180fa03720f0b41f20c1008200141ff01714180fc03720f0b41f20c1008200141ff01714180fe03720f0b41f20c1008200041107641808004720f0b41a604100841290f0b41a6041008412a0f0b41a6041008412b0f0b41a6041008412c0f0b41a6041008412d0f0b41a6041008412e0f0b41a6041008412f0f0b41a604100841300f0b41f4031008413121020b418603100820020bab6309087f017e017f017e017f017e017f017e087f41b8f0111008230041e0026b2200240020004100360290020240024002400240024002400240418080c000410620004190026a1001230141086a2401230141f4034b0440000b100e230141086b2401220141ff017122024136460d0041a69702100820024101470d01419c960410084101230141016a2401230141f4034b0440000b1009230141016b2401000b41f2b3021008024002402000280290022202450d0041a6970210082002417f4c0d0341ccad06100820024101230141096a2401230141f4034b0440000b100f230141096b24012203450d0441d8cf0a100802400240418080c0004106200320021002230141086a2401230141f4034b0440000b100e230141086b2401220141ff01714136470d0041f0ad02100820032d0000220141c0004b0d0141849f0210082002417f6a22042001490d0141e28a12100820004190026a20016a410041c00020016b230141036a2401230141f4034b0440000b1020230141036b24011a20004190026a200341016a2001230141036a2401230141f4034b0440000b1023230141036b24011a20004180016a41376a2205200041c8026a29000037000020004180016a41306a2206200041c1026a29000037030020004180016a41286a2207200041b9026a290000220837030020004180016a41206a2209200041b1026a290000220a37030020004180016a41186a220b200041a9026a290000220c37030020004180016a41106a220d200041a1026a290000220e370300200041c0016a41086a220f20004190026a41096a290000370300200041c0016a41106a2210200e370300200041c0016a41186a2211200c370300200041c0016a41206a2212200a370300200041c0016a41286a22132008370300200041c0016a41306a22142006290300370300200041c0016a41376a2215200529000037000020002000290091023703c001200420016b450d0341d2ab061008200320024101230141086a2401230141f4034b0440000b1010230141086b24010c020b41ceb2081008200320024101230141036a2401230141f4034b0440000b1011230141036b24012001230141016a2401230141f4034b0440000b1009230141016b2401000b419a9a041008200320024101230141086a2401230141f4034b0440000b1010230141086b24010b419c960410084102230141016a2401230141f4034b0440000b1009230141016b2401000b419ef613100820002d0090022116200041c0006a41376a22012015290000370000200041c0006a41306a22042014290300370300200041c0006a41286a22142013290300370300200041c0006a41206a22132012290300370300200041c0006a41186a22122011290300370300200041c0006a41106a22112010290300370300200041c0006a41086a2210200f290300370300200020002903c001370340200320024101230141086a2401230141f4034b0440000b1010230141086b240120004180016a41086a2010290300370300200d2011290300370300200b2012290300370300200920132903003703002007201429030037030020062004290300370300200520012900003700002000200029034037038001200041c48ac000360240200041002802e482403602c001024041094101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802c0013602e482400c060b41848b071008200020002802402201280200360290020240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820012000280290023602000c040b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820012000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200120002802900236020020020d040b41cccd021008410020002802c0013602e482400c040b41b4980410082001230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084122230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084113230141016a2401230141f4034b0440000b1009230141016b2401000b41f4b608100820024100360204200220002802c001360208200220024180c0006a410272360200200020023602c00141094101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802c0013602e4824020020d010b419c960410084113230141016a2401230141f4034b0440000b1009230141016b2401000b2002100302400240024002400240024020022d0020220b41074b0d004188c1121008200041c0016a41106a2205200241116a290000370300200041c0016a41176a2206200241186a29000037000020004190026a41106a2201200529030037030020004190026a41176a2203200629000037000020004190026a41086a2204200241096a2900002208370300200041086a2008370300200041106a2001290300370300200041176a20032900003700002000200229000122083703900220022d0000210d41002802e4824021074100200241786a22033602e482402002200736020020032003280200417e713602002000200837030020004190026a41186a420037030020014200370300200442003703002000420037039002410120004190026a41201004230141086a2401230141f4034b0440000b100e230141086b2401220241ff01714136470d0141fa8b0a1008200041c0016a41086a2000419d026a2900003703002005200041a5026a2900003703002006200041ac026a28000036000020002000290095023703c00120002d009102210120002d009002210320002f019202210520002d0094022106200041c48ac000360220200041002802e08240360240024041084101200041c0006a200041206a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802403602e082400c040b41848b071008200020002802202204280200360290020240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820042000280290023602000c030b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820042000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200420002802900236020020020d030b41cccd021008410020002802403602e082400c040b41bec10c1008200241214101230141036a2401230141f4034b0440000b1011230141036b24014101230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b41b4980410082002230141016a2401230141f4034b0440000b1009230141016b2401000b41eeb80810082002410036020420022000280240360208200220024180c0006a4102723602002000200236024041084101200041c0006a200041206a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802403602e082402002450d010b41b2d60d1008200220002903c0013700052002410d6a200041c0016a41086a290300370000200241156a200041c0016a41106a2903003700002002411c6a200041c0016a41176a280000360000200220033a000020022005200641107472410874200172360001200041206a41086a200241096a290000370300200041206a41106a200241116a290000370300200041206a41176a200241186a29000037000041002802e082402105200229000121084100200241786a22013602e0824020002008370320200128020021062002200536020020012006417e71360200200041c48ac000360240200020013602c0010240024041084101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802c0013602e082400c010b41aac70f10082000200028024022012802003602900202400240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820012000280290023602000c010b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820012000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200120002802900236020020020d010b41b0c0001008410020002802c0013602e0824000000b20024100360204200220002802c001360208200220024180c0006a410272360200200020023602c00141084101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802c0013602e082402002450d010b419ad609100820022000290320370001200220033a0000200241186a200041376a290000370000200241116a200041306a290300370000200241096a200041286a290300370000200041c48ac000360240200041002802d882403602c0010240024041064101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012203450d0041cccd021008410020002802c0013602d882400c010b41aac70f10082000200028024022032802003602900202400240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012201450d0041e4cf02100820032000280290023602000c010b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012201417f470d0041e4cf02100820032000280290023602000c010b41bab7081008200141107422014100360204200120002802900236020820012001418280046a3602002000200136029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012101200320002802900236020020010d010b41b0c0001008410020002802c0013602d8824000000b20014100360204200120002802c001360208200120014180c0006a410272360200200020013602c00141064101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012103410020002802c0013602d882402003450d010b41c08d081008200341113600002003410029008680403700042003410c6a410029008e8040370000200341146a41002d009680403a000041044101230141096a2401230141f4034b0440000b100f230141096b24012206450d0041daa00b1008200641003600000240024002400240024002400240024002400240024020024120200341152006410420004190026a1005230141086a2401230141f4034b0440000b100e230141086b2401220141ff01714136470d004182ad0210082000280290022201450d0441a6970210082001417f4c0d0141ccad06100820014101230141096a2401230141f4034b0440000b100f230141096b24012205450d0241d2cc0a100820052001200041c0016a1006230141086a2401230141f4034b0440000b100e230141086b2401220441ff01714136470d03419a9b0210084100210420014120490d0541a69702100820014120460d0541e4b10210084101210420052d0020221241074b0d0541dadf05100820052d00002113200041c0016a41176a2207200541016a220441176a290000370000200041c0016a41106a2209200441106a29000037030020004190026a41086a220f200441086a29000037030020004190026a41106a2210200929030037030020004190026a41176a221120072900003700002000200429000037039002024020014121460d0041c6af061008200520014101230141086a2401230141f4034b0440000b1010230141086b2401410221040c0d0b41c0b81b1008200041c0006a41176a22042011290000370000200041c0006a41106a22112010290300370300200041c0006a41086a2210200f2903003703002000200029039002370340200520014101230141086a2401230141f4034b0440000b1010230141086b2401200041c0016a41086a20102903003703002009201129030037030020072004290000370000200020002903403703c001200641044101230141086a2401230141f4034b0440000b1010230141086b2401200341154101230141086a2401230141f4034b0440000b1010230141086b2401200241002802e082403602004100200241786a22023602e0824020022002280200417e7136020020004199026a2202200041086a290300370000200041a1026a2201200041106a290300370000200041a8026a2203200041176a2900003700002000200d3a00900220002000290300370091022000200b3a00b002200041c0006a20004190026a230141086a2401230141f4034b0440000b1014230141086b24012000280244220b450d06418eda091008200028024821112000280240210d2002200041c0016a41086a2903003700002001200041c0016a41106a2903003700002003200041d7016a290000370000200020133a009002200020002903c00137009102200020123a00b002200041c0006a20004190026a230141086a2401230141f4034b0440000b1014230141086b24012000280244220f450d0741a2a90710082000280248211220002802402110200041c8026a200041b7016a29000037000020004199026a20004180016a41086a290300370000200041a1026a20004180016a41106a290300370000200041a9026a20004198016a290300370000200041b1026a200041a0016a290300370000200041b9026a200041a8016a290300370000200041c1026a200041b0016a290300370000200020163a009002200020002903800137009102024020002d00cf022202450d004190a0021008200041cf026a2104200221160c090b41bab0021008024020002d00ce022202450d004190a0021008200041ce026a2104200221160c090b41bab0021008024020002d00cd022202450d004190a0021008200041cd026a2104200221160c090b41bab0021008024020002d00cc022202450d004190a0021008200041cc026a2104200221160c090b41bab0021008024020002d00cb022202450d004190a0021008200041cb026a2104200221160c090b41bab0021008024020002d00ca022202450d004190a0021008200041ca026a2104200221160c090b41bab0021008024020002d00c9022202450d004190a0021008200041c9026a2104200221160c090b41bab0021008024020002d00c8022202450d004190a0021008200041c8026a2104200221160c090b41bab0021008024020002d00c7022202450d004190a0021008200041c7026a2104200221160c090b41bab0021008024020002d00c6022202450d004190a0021008200041c6026a2104200221160c090b41bab0021008024020002d00c5022202450d004190a0021008200041c5026a2104200221160c090b41bab0021008024020002d00c4022202450d004190a0021008200041c4026a2104200221160c090b41bab0021008024020002d00c3022202450d004190a0021008200041c3026a2104200221160c090b41bab0021008024020002d00c2022202450d004190a0021008200041c2026a2104200221160c090b41bab0021008024020002d00c1022202450d004190a0021008200041c1026a2104200221160c090b41bab0021008024020002d00c0022202450d004190a0021008200041c0026a2104200221160c090b41bab0021008024020002d00bf022202450d004190a0021008200041bf026a2104200221160c090b41bab0021008024020002d00be022202450d004190a0021008200041be026a2104200221160c090b41bab0021008024020002d00bd022202450d004190a0021008200041bd026a2104200221160c090b41bab0021008024020002d00bc022202450d004190a0021008200041bc026a2104200221160c090b41bab0021008024020002d00bb022202450d004190a0021008200041bb026a2104200221160c090b41bab0021008024020002d00ba022202450d004190a0021008200041ba026a2104200221160c090b41bab0021008024020002d00b9022202450d004190a0021008200041b9026a2104200221160c090b41bab0021008024020002d00b8022202450d004190a0021008200041b8026a2104200221160c090b41bab0021008024020002d00b7022202450d004190a0021008200041b7026a2104200221160c090b41bab0021008024020002d00b6022202450d004190a0021008200041b6026a2104200221160c090b41bab0021008024020002d00b5022202450d004190a0021008200041b5026a2104200221160c090b41bab0021008024020002d00b4022202450d004190a0021008200041b4026a2104200221160c090b41bab0021008024020002d00b3022202450d004190a0021008200041b3026a2104200221160c090b41bab0021008024020002d00b2022202450d004190a0021008200041b2026a2104200221160c090b41bab0021008024020002d00b1022202450d004190a0021008200041b1026a2104200221160c090b41bab0021008024020002d00b0022202450d004190a0021008200041b0026a2104200221160c090b41bab0021008024020002d00af022202450d004190a0021008200041af026a2104200221160c090b41bab0021008024020002d00ae022202450d004190a0021008200041ae026a2104200221160c090b41bab0021008024020002d00ad022202450d004190a0021008200041ad026a2104200221160c090b41bab0021008024020002d00ac022202450d004190a0021008200041ac026a2104200221160c090b41bab0021008024020002d00ab022202450d004190a0021008200041ab026a2104200221160c090b41bab0021008024020002d00aa022202450d004190a0021008200041aa026a2104200221160c090b41bab0021008024020002d00a9022202450d004190a0021008200041a9026a2104200221160c090b41bab0021008024020002d00a8022202450d004190a0021008200041a8026a2104200221160c090b41bab0021008024020002d00a7022202450d004190a0021008200041a7026a2104200221160c090b41bab0021008024020002d00a6022202450d004190a0021008200041a6026a2104200221160c090b41bab0021008024020002d00a5022202450d004190a0021008200041a5026a2104200221160c090b41bab0021008024020002d00a4022202450d004190a0021008200041a4026a2104200221160c090b41bab0021008024020002d00a3022202450d004190a0021008200041a3026a2104200221160c090b41bab0021008024020002d00a2022202450d004190a0021008200041a2026a2104200221160c090b41bab0021008024020002d00a1022202450d004190a0021008200041a1026a2104200221160c090b41bab0021008024020002d00a0022202450d004190a0021008200041a0026a2104200221160c090b41bab0021008024020002d009f022202450d004190a00210082000419f026a2104200221160c090b41bab0021008024020002d009e022202450d004190a00210082000419e026a2104200221160c090b41bab0021008024020002d009d022202450d004190a00210082000419d026a2104200221160c090b41bab0021008024020002d009c022202450d004190a00210082000419c026a2104200221160c090b41bab0021008024020002d009b022202450d004190a00210082000419b026a2104200221160c090b41bab0021008024020002d009a022202450d004190a00210082000419a026a2104200221160c090b41bab0021008024020002d0099022202450d004190a002100820004199026a2104200221160c090b41bab0021008024020002d0098022202450d004190a002100820004198026a2104200221160c090b41bab0021008024020002d0097022202450d004190a002100820004197026a2104200221160c090b41bab0021008024020002d0096022202450d004190a002100820004196026a2104200221160c090b41bab0021008024020002d0095022202450d004190a002100820004195026a2104200221160c090b41bab0021008024020002d0094022202450d004190a002100820004194026a2104200221160c090b41bab0021008024020002d0093022202450d004190a002100820004193026a2104200221160c090b41bab0021008024020002d0092022202450d004190a002100820004192026a2104200221160c090b41bab0021008024020002d0091022202450d004190a002100820004191026a2104200221160c090b41a4a002100820004190026a2104201641ff01710d0841c0ea02100841002102200041003602482000428080808010370340410021010c090b41b4980410082001230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084122230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084113230141016a2401230141f4034b0440000b1009230141016b2401000b41e4b2051008200020043a009002200020044118763a009302200020044108763b009102200028029002230141016a2401230141f4034b0440000b1009230141016b2401000b41ac95021008410021040c070b41d2ab061008200520014101230141086a2401230141f4034b0440000b1010230141086b24010c060b4198bf08100820002d0040230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b4198bf08100820002d0040230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b41e6ef0510080240024002400240024002400240024041002802c882402202450d0041b8031008034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210502400240024020022802002206417c7122030d0041c497021008200121060c010b418a9d02100802402006410271450d0041c497021008200121060c010b419afa0210082003200328020441037120017236020420022802042203417c712206450d0141ba3610082002280200417c712103200628020021050b4184cd00100820062005410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4108490d0041f6a10210080240200141106a200541786a4d0d0041aeb40210082001280200417c712105200221010c0a0b41fcae07100841002103200541706a220141003602082001420037020020012002280200417c71360200024020022802002206417c712205450d0041d89702100820064102710d0041e2e300100820052005280204410371200172360204200128020441037121030b20012003200272360204200241086a22032003280200417e71360200200220022802002203410371200172220536020020034102710d034188ab021008200128020021030c040b4188ab021008200128020022020d000b0b41a2ae021008024041002802c48a402202450d0041b8031008034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210602400240024020022802002205417c7122030d0041c497021008200121050c010b418a9d02100802402005410271450d0041c497021008200121050c010b419afa0210082003200328020441037120017236020420022802042203417c712205450d0141ba3610082002280200417c712103200528020021060b4184cd00100820052006410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4180c000490d0041f6a1021008024020014188106a20054180406a4d0d0041d89702100820014103710d0141aeb4021008200221052001280200417c7121020c080b41fcae07100841002101200541f8bf7f6a220541003602082005420037020020052002280200417c71360200024020022802002206417c712203450d0041d89702100820064102710d0041e2e300100820032003280204410371200572360204200528020441037121010b20052001200272360204200241086a22012001280200417e71360200200220022802002201410371200572220336020020014102710d054188ab021008200528020021030c070b4188ab021008200128020022020d000b0b41ccee10100802404101230141036a2401230141f4034b0440000b1024230141036b24012202417f460d0041d0df00100820024110742202420037020420022002418280046a360200034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210502400240024020022802002206417c7122030d0041c497021008200121060c010b418a9d02100802402006410271450d0041c497021008200121060c010b419afa0210082003200328020441037120017236020420022802042203417c712206450d0141ba3610082002280200417c712103200628020021050b4184cd00100820062005410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4180c000490d0041f6a1021008024020014188106a20054180406a4d0d0041d89702100820014103710d0141aeb4021008200221052001280200417c7121020c080b41b4b207100841002101200541f8bf7f6a220541003602082005420037020020052002280200417c71360200024020022802002206417c712203450d0041d89702100820064102710d0041e2e300100820032003280204410371200572360204200528020441037121010b20052001200272360204200241086a22012001280200417e713602002002200228020022014103712005722203360200024020014102710d004188ab021008200528020021030c080b41a4dc02100820022003417d71360200200528020041027221030c060b4188ab021008200128020022020d000b0b41f0b7021008410041003602c48a400c050b41cef200100820022005417d713602002001200128020041027222033602000b41c497021008200221050c040b41ecca00100820022003417d71360200200528020041027221030b41e82a1008200520033602000b41a8be011008410020023602c48a40200520034101723602002005410c6a4200370200200520054188c0006a410272360208200541086a2102034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210502400240024020022802002206417c7122030d0041c497021008200121060c010b418a9d02100802402006410271450d0041c497021008200121060c010b419afa0210082003200328020441037120017236020420022802042203417c712206450d0141ba3610082002280200417c712103200628020021050b4184cd00100820062005410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4108490d0041f6a10210080240200141106a200541786a4d0d0041aeb40210082001280200417c712105200221010c040b41b4b207100841002103200541706a220141003602082001420037020020012002280200417c71360200024020022802002206417c712205450d0041d89702100820064102710d0041e2e300100820052005280204410371200172360204200128020441037121030b20012003200272360204200241086a22032003280200417e713602002002200228020022034103712001722205360200024020034102710d004194b102100820012802002103200221050c040b41928a03100820022005417d71360200200120012802004102722203360200200221050c030b4188ab021008200128020022020d000b0b41d42a1008410041003602c8824000000b410020053602c88240200120163a000820012003410172360200200141086a2105024020004190026a2004470d0041a89503100841012102200041013602482000200536024420004108360240410121030c020b41a00b100841082101410121020340418cbc0210082004417f6a22042d00002103024020022001470d0041b69f0210080240200141016a2206450d0041caf9071008200020053602402000200136024420004101360248200041d0026a200141017422162006201620064b1b22064108200641084b1b22062006417f73411f76200041c0006a230141046a2401230141f4034b0440000b1015230141046b2401024020002802d0020d004194b102100820002802d4022105200621010c020b41f0ad02100820002802d8022206418180808078460d0141be9402100820060d050b41ae95041008230141016a2401230141f4034b0440000b1016230141016b2401000b418ad4021008200520026a20033a0000200241016a2102200420004190026a470d000b4182a00310082000200236024820002005360244200020013602402002210320022001470d010b418ccf041008200041c0006a2001230141086a2401230141f4034b0440000b1017230141086b240120002802442105200028024821030b41ccce051008200520036a221620023a00002000200341016a2209360248024020094102490d0041c4be041008410021020240200941017622134101460d004184251008410021014100200941017641feffffff07716b21072005210203404182c004100820022d000021062002201620016a22032d00003a0000200320063a0000200241016a22062d0000210420062003417f6a22032d00003a0000200320043a0000200241026a210220072001417e6a2201470d000b410020016b21020b2009410271450d0041c2a3011008200520026a22012d000021032001200520096a20136b20132002417f736a6a22022d00003a0000200220033a00000b2000280240210102400240024020002802442203450d00419ab907100820002802482105200041c48ac0003602d002200041002802c48240360240024041014101200041c0006a200041d0026a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802403602c482400c030b41848b071008200020002802d0022206280200360290020240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820062000280290023602000c020b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820062000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200620002802900236020020020d020b41b0c0001008410020002802403602c4824000000b41d4ab0810082001230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b41eeb80810082002410036020420022000280240360208200220024180c0006a4102723602002000200236024041014101200041c0006a200041d0026a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802403602c482402002450d010b41feee151008200241003a0000200b2011200f2012200320052002410110072105200241014101230141086a2401230141f4034b0440000b1010230141086b240102402001450d00419a9a041008200320014101230141086a2401230141f4034b0440000b1010230141086b24010b02402010450d00419a9a041008200f20104101230141086a2401230141f4034b0440000b1010230141086b24010b0240200d450d00419a9a041008200b200d4101230141086a2401230141f4034b0440000b1010230141086b24010b02402005230141086a2401230141f4034b0440000b100e230141086b2401220241ff01714136470d0041840c1008200041e0026a24000f0b41b4980410082002230141016a2401230141f4034b0440000b1009230141016b2401000b419c04100800000b41d4ab0810082004230141026a2401230141f4034b0440000b100b230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b880801047f41fc8004100841002101413621024100210341002104024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020000e323332000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f310b41ac95021008410121040c2f0b41ac95021008410221040c2e0b41ac95021008410321040c2d0b41ac95021008410421040c2c0b41ac95021008410521040c2b0b41ac95021008410621040c2a0b41ac95021008410721040c290b41ac95021008410821040c280b41ac95021008410921040c270b41ac95021008410a21040c260b41ac95021008410b21040c250b41ac95021008410c21040c240b41ac95021008410d21040c230b41ac95021008410e21040c220b41ac95021008410f21040c210b41ac95021008411021040c200b41ac95021008411121040c1f0b41ac95021008411221040c1e0b41ac95021008411321040c1d0b41ac95021008411421040c1c0b41ac95021008411521040c1b0b41ac95021008411621040c1a0b41ac95021008411721040c190b41ac95021008411821040c180b41ac95021008411921040c170b41ac95021008411a21040c160b41ac95021008411b21040c150b41ac95021008411c21040c140b41ac95021008411d21040c130b41ac95021008411e21040c120b41ac95021008411f21040c110b41ac95021008412021040c100b41ac95021008412121040c0f0b41ac95021008412221040c0e0b41ac95021008412321040c0d0b41ac95021008412421040c0c0b41ac95021008412521040c0b0b41ac95021008412621040c0a0b41ac95021008412721040c090b41ac95021008412d21040c080b41ac95021008412e21040c070b41ac95021008412f21040c060b41ac95021008413021040c050b41ac95021008413121040c040b41ac95021008413221040c030b41ac95021008413321040c020b41ac95021008413421040c010b41f4031008413521040b41ac95021008410021030c010b41a0a8021008024002400240024020004180807c7141808004460d0041c69d021008200041807e7122024180fa03460d0241a69702100820024180fc03460d01419aa5021008412b2104410021032000210120024180fe03460d0441f2b30210084128411e20024180f8034622021b2104410021032000410020021b21010c040b41d29e02100820004110742103412c21040c030b41ac95021008412a21040c010b41f4031008412921040b41800a100841002103200021010b41a4171008200420037220014108744180fe03717221020b20020bda0401047f4198db021008230041106b22022400200041036a220341027621000240024002400240417f200141044720014104491b2204417f460d0041d897021008200441ff01710d010b41f29f0210082000417f6a22044180024922050d010b41a4c2091008200241002802c48a4036020c0240200020012002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240122040d0041c497111008410021042003417c7122032001410374418080016a2205200320054b1b418780046a2203411076230141036a2401230141f4034b0440000b1024230141036b24012205417f460d0041ccf10510082005411074220441003602042004200228020c3602082004200420034180807c716a4102723602002002200436020c200020012002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240121040b4100200228020c3602c48a400c010b41d0f2071008200241c48ac0003602082002200441027441c482c0006a410020051b220328020036020c0240200020012002410c6a200241086a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b240122040d0041eecd0610082002200241086a20002002230141096a2401230141f4034b0440000b1019230141096b24014100210420022802000d00418aa805100820022802042204200228020c3602082002200436020c200020012002410c6a200241086a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b240121040b2003200228020c3602000b200241106a240020040bbc0401047f41e0a00210080240024002402000450d0041b8960210082001450d0041d0b1021008024002400240417f200241044720024104491b2202417f460d0041d897021008200241ff01710d010b41c6a2021008200141036a410276417f6a2201418002490d010b41ecc603100820004100360200200041786a220120012802002202417e7136020041002802c48a40210302400240200141046a2204280200417c712205450d0041a2ae021008200528020022064101710d0041a6b10510080240024002402002417c7122000d0041c497021008200521020c010b418a9d02100802402002410271450d0041c497021008200521020c010b419afa0210082000200028020441037120057236020420042802002200417c712202450d0141ba3610082001280200417c712100200228020021060b4184cd00100820022006410371200072360200200428020021000b200420004103713602002001200128020022004103713602002000410271450d0141fed2021008200520052802004102723602000c010b41d89c0210082002417c712205450d0341d89702100820024102710d03419cab02100820052d00004101710d03418ef50010082000200541086a2202280200417c71360200200220014101723602000b41c497021008200321010c030b4180b90110082000200141027441c482c0006a2201280200360200200041786a22002000280200417e71360200200120003602000b41b80310080f0b41e82a1008200020033602000b41d0281008410020013602c48a400b280041b29c041008200020012002230141086a2401230141f4034b0440000b1010230141086b24010bd40501077f41bab0021008024020022802002205450d0041f61d10082001417f6a2106410020016b21072000410274210803404186f40410080240200541086a2d0000410171450d0041b8031008034041f29e09100820052005280208417e713602082005280204417c71220128020021090240024002402005280200220a417c71220b0d0041c4970210082001210a0c010b418a9d0210080240200a410271450d0041c4970210082001210a0c010b419afa021008200b200b2802044103712001723602042005280204220b417c71220a450d0141ba3610082005280200417c71210b200a28020021090b4184cd001008200a2009410371200b723602002005280204210b0b2005200b41037136020420052005280200220b4103713602000240200b410271450d0041c6c1001008200120012802004102723602000b2002200136020020012105200141086a2d00004101710d000b0b02402005280200417c71220b200541086a22016b2008490d0041e0e40610080240024020012003200020042802101100004102746a41086a200b20086b200771220b4d0d0041f09902100820062001710d02419af50210082002200541086a280200417c713602002005280200210b200521010c010b41b4b207100841002109200b4100360200200b41786a2201420037020020012005280200417c7136020002402005280200220a417c71220b450d0041d897021008200a4102710d0041e2e3001008200b200b280204410371200172360204200128020441037121090b20012009200572360204200541086a220b200b280200417e7136020020052005280200220b41037120017222093602000240200b4102710d004188ab0210082001280200210b0c010b41cef200100820052009417d7136020020012001280200410272220b3602000b41803710082001200b410172360200200141086a0f0b41f0d502100820022001280200220536020020050d000b0b41ee00100841000b1b0041d82210082000411874411875410274418c82c0006a2802000bed0401037f4184fa0a1008230041106b22022400200241c48ac000360204200241002802e482403602080240024041094101200241086a200241046a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012203450d0041cccd021008410020022802083602e482400c010b41f49107100820022002280204220428020036020c02400240024041801041042002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012203450d0041e4cf0210082004200228020c3602000c010b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012203417f470d0041e4cf0210082004200228020c3602000c010b41bab70810082003411074220341003602042003200228020c36020820032003418280046a3602002002200336020c41801041042002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240121032004200228020c36020020030d010b41cccd021008410020022802083602e482400c010b41f4b60810082003410036020420032002280208360208200320034180c0006a4102723602002002200336020841094101200241086a200241046a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012103410020022802083602e4824020030d010b419c04100800000b20004121360208200020033602042000412136020020032001290000370000200320012d00203a0020200341186a200141186a290000370000200341106a200141106a290000370000200341086a200141086a290000370000200241106a24000be10201017f41a89d021008024002402002450d004186a5021008024002400240024020014100480d0041fca90210082003280208450d014182ad02100820032802042204450d01419cc70610082003280200210320014101230141096a2401230141f4034b0440000b100f230141096b24012202450d0341bccb0a1008200220032004230141036a2401230141f4034b0440000b1023230141036b24011a200320044101230141086a2401230141f4034b0440000b1010230141086b24010c020b41c8bc021008200041086a41003602000c040b41ccad06100820014101230141096a2401230141f4034b0440000b100f230141096b24012202450d010b41988401100820002002360204200041086a2001360200200041003602000f0b41808201100820002001360204200041086a4101360200200041013602000f0b41f8d500100820002001360204200041086a41003602000b41d0281008200041013602000b230041ae95041008230141016a2401230141f4034b0440000b1018230141016b2401000baa0201037f418cb7021008230041206b2202240002400240200141016a2201450d0041e8b20910082000280200220341017422042001200420014b1b22014108200141084b1b2201417f73411f762104024002402003450d0041dca503100820024101360218200220033602142002200041046a2802003602100c010b41d0281008200241003602180b200220012004200241106a230141046a2401230141f4034b0440000b1015230141046b2401024020022802000d0041d8800310082002280204210320002001360200200020033602040c020b41b0b0021008200241086a2802002200418180808078460d0141b8960210082000450d00419c04100800000b41ae95041008230141016a2401230141f4034b0440000b1016230141016b2401000b200241206a24000b0900419c04100800000b9d0301047f41d698081008230041106b2204240020042001280200220528020036020c024002400240200241026a220120016c220141801020014180104b1b220241042004410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012201450d00418ad90210082005200428020c360200200241027421060c010b41b08d111008024002402002410274220641a08001200641a080014b1b418780046a2207411076230141036a2401230141f4034b0440000b1024230141036b24012201417f470d0041e4cf0210082005200428020c3602000c010b419ec20810082001411074220141003602042001200428020c3602082001200120074180807c716a4102723602002004200136020c200241042004410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240121012005200428020c36020020010d010b41a09902100841012102410021010c010b419edf001008200142003702042001200120066a410272360200410021020b2000200136020420002002360200200441106a24000b02000b9801004190f011100802400240200241027422022003410374418080016a2203200220034b1b418780046a2203411076230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041a09902100841012103410021020c010b41d8e80010082002411074220242003702042002200220034180807c716a410272360200410021030b20002002360204200020033602000b0a0041ee0010084180040b090041ee00100841010b0900418603100820010b090041ee00100841000b280041b29c041008200020012002230141066a2401230141f4034b0440000b1022230141066b24010b8c0301087f418cbb041008024002402002410f4b0d0041c497021008200021030c010b41c6850510082000410020006b41037122046a210502402004450d0041d00f10082000210320012106034041fce5021008200320062d00003a0000200641016a2106200341016a22032005490d000b0b2005200220046b2207417c7122086a210302400240200120046a22094103712206450d0041a69702100820084101480d0141fa3d10082009417c71220a41046a21014100200641037422026b4118712104200a280200210603404198f9021008200520062002762001280200220620047472360200200141046a2101200541046a22052003490d0041b8910210080c020b0b41a69702100820084101480d0041c409100820092101034041fce502100820052001280200360200200141046a2101200541046a22052003490d000b0b20074103712102200920086a21010b02402002450d00419c0e1008200320026a2105034041fce5021008200320012d00003a0000200141016a2101200341016a22032005490d000b0b20000be80101037f418cbb041008024002402002410f4b0d0041c497021008200021030c010b419aea0410082000410020006b41037122046a210502402004450d0041c409100820002103034041ecc9021008200320013a0000200341016a22032005490d000b0b2005200220046b2204417c7122026a2103024020024101480d0041bc0f1008200141ff017141818284086c2102034041ecc902100820052002360200200541046a22052003490d000b0b200441037121020b02402002450d00419c0e1008200320026a2105034041ecc9021008200320013a0000200341016a22032005490d000b0b20000b280041b29c0410082000200120022301410c6a2401230141f4034b0440000b10212301410c6b24010b0f00200020004180d30e6c100840000b1c002301411f6a2401230141f4034b0440000b100d2301411f6b24010b24002000200120022003230141096a2401230141f4034b0440000b1019230141096b24010b24002000200120022003230141046a2401230141f4034b0440000b101b230141046b24010b200020002001230141016a2401230141f4034b0440000b101c230141016b24010b1e002000230141016a2401230141f4034b0440000b101d230141016b24010b200020002001230141016a2401230141f4034b0440000b101e230141016b24010b1e002000230141016a2401230141f4034b0440000b101f230141016b24010b0bce020100418080c0000bc402616d6f756e746765745f7061796d656e745f7075727365706179746573745f7061796d656e745f7061636b6167655f68617368746573745f7061796d656e745f616363657373636f6e74726163745f76657273696f6e746573745f7061796d656e745f6861736863616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c7565000001000000040000000400000002000000030000000400000001000000000000000100000005000000060000000700000010000000110000001200000013000000270000002600000027000000260000001000000010000000100000001100000012000000130000002200000022000000420000002a0000001000000011000000120000001300000027000000260000002200000022000000420000002a00000041000000290000002100000021000000" + } + } + } + }, + { + "key": "entry-point-v1-entity-contract-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e-0c5d85bbfb4ae1310aff9ce7b0699549e6d5d5094eba44c5fe2b1e278a673166", + "kind": { + "Write": { + "EntryPoint": { + "V1CasperVm": { + "name": "pay", + "args": [ + { + "name": "amount", + "cl_type": "U512" + } + ], + "ret": "Unit", + "access": "Public", + "entry_point_type": "Called", + "entry_point_payment": "Caller" + } + } + } + } + }, + { + "key": "entity-contract-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e", + "kind": { + "Write": { + "AddressableEntity": { + "protocol_version": "2.0.0", + "entity_kind": { + "SmartContract": "VmCasperV1" + }, + "package_hash": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "byte_code_hash": "byte-code-9639481569c3940ce272402f0e9bc0ea535435ea9ffc18d8696e4af02c841354", + "main_purse": "uref-7a9d9c0c33540e9fd4c1245f6ac687c7eacf98ac1072591adc3f83332a909d86-007", + "associated_keys": [ + { + "account_hash": "account-hash-58749b769807d041002896ca59f55ec1c87197f66b82d9aee229c91eed7dfc8d", + "weight": 1 + } + ], + "action_thresholds": { + "deployment": 1, + "upgrade_management": 1, + "key_management": 1 + }, + "message_topics": [] + } + } + } + }, + { + "key": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "kind": { + "Write": { + "Package": { + "versions": [ + { + "entity_version_key": { + "protocol_version_major": 2, + "entity_version": 1 + }, + "addressable_entity_hash": "addressable-entity-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e" + } + ], + "disabled_versions": [], + "groups": [], + "lock_status": "Unlocked" + } + } + } + }, + { + "key": "uref-2e024fc493ffb93847290be74a6f921a4226c142b5b196654b5a9c724cb2a726-000", + "kind": { + "Write": { + "CLValue": { + "cl_type": "U32", + "bytes": "01000000", + "parsed": 1 + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-1a77e4ba31d02a3941319349f259d5fb02ef3ed70f92775cd18b8aba359441e2", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "022e024fc493ffb93847290be74a6f921a4226c142b5b196654b5a9c724cb2a72607", + "parsed": "uref-2e024fc493ffb93847290be74a6f921a4226c142b5b196654b5a9c724cb2a726-007" + }, + "name": { + "cl_type": "String", + "bytes": "10000000636f6e74726163745f76657273696f6e", + "parsed": "contract_version" + } + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-9dbabf5ba4a0f30fd2fc8085b3b0baccf6bedc38c362d571b7912387d0bd8f39", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "1102eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e", + "parsed": "entity-contract-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e" + }, + "name": { + "cl_type": "String", + "bytes": "11000000746573745f7061796d656e745f68617368", + "parsed": "test_payment_hash" + } + } + } + } } - }, - { - "key": "transfer-97426c848475dae98446f2c2fd00ec7901cd8ddfe250171ff4ed25d78412a612", - "transform": { - "WriteTransfer": { - "deploy_hash": "d898910011b1f2f8797a442740e69cd5de41b9f796e658e962a24663e6199e5a", - "from": "account-hash-0a9b33af5108c5a6e1067b0ddec6853ce1745d591375d767ac5db680d21845e7", - "to": "account-hash-f466e7f5f9240fb577d1d4c650c4063752553406dff7aa24b4822ba2b72e5b65", - "source": "uref-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678-007", - "target": "uref-92ec6dfbdf151e20b55c89e0a327959cf6e5b091c5f2b39201c1858e2943f3bd-004", - "amount": "2500000000", - "gas": "0", - "id": 0 - } + ], + "messages": [], + "error": null + } + } + } +} + +``` + + +
+ + +## speculative_exec_txn + +The `speculative_exec_txn` endpoint allows executing a `Transaction` without committing its execution effects to global state. By default, `speculative_exec_txn` is turned off on a node. Sending a request to a node with the endpoint unavailable will result in an error message. Find out if this endpoint is available and which port to access. The port is separate from the node's binary port and the default is 7778. + +|Parameter|Type|Description| +|---------|----|-----------| +|[transaction](./types_chain.md#transaction)|Object|A Transaction is a versioned wrapper for a transaction or deploy.| + +
+ +Example speculative_exec_txn request + +```json + +{ + "jsonrpc": "2.0", + "method": "speculative_exec_txn", + "params": { + "transaction": { + "Version1": { + "hash": "f5582cb81a5abda63ebaa4edb3b05210ecbd63ffb8dd17bfbeb3b867f4014468", + "header": { + "chain_name": "casper-example", + "timestamp": "2020-11-17T00:39:24.072Z", + "ttl": "1h", + "body_hash": "aa24833ffbf31d62c8c8c4265349e7c09cd71952fcbce6f7b12daf5e340bf2cc", + "pricing_mode": { + "Fixed": { + "gas_price_tolerance": 5 + } + }, + "initiator_addr": { + "PublicKey": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c" + } + }, + "body": { + "args": [ + [ + "source", + { + "cl_type": { + "Option": "URef" + }, + "bytes": "010a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a07", + "parsed": "uref-0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a-007" } - }, - { - "key": "deploy-d898910011b1f2f8797a442740e69cd5de41b9f796e658e962a24663e6199e5a", - "transform": { - "WriteDeployInfo": { - "deploy_hash": "d898910011b1f2f8797a442740e69cd5de41b9f796e658e962a24663e6199e5a", - "transfers": [ - "transfer-97426c848475dae98446f2c2fd00ec7901cd8ddfe250171ff4ed25d78412a612" - ], - "from": "account-hash-0a9b33af5108c5a6e1067b0ddec6853ce1745d591375d767ac5db680d21845e7", - "source": "uref-7c25ef9382fcae902b922866434f7111a1b34534323e93ff5bf22f1a401c2678-007", - "gas": "100000000" - } + ], + [ + "target", + { + "cl_type": "URef", + "bytes": "1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b00", + "parsed": "uref-1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b-000" } - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-0a300922655180354a9ee92b808c7b45b08e5b01d9da0bac9a9b3415bcebbf8d", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": "Identity" - }, - { - "key": "hash-d2dfc9409965993f9e186db762b585274dcafe439fa1321cfca08017262c8e46", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "hash-59c6451dd58463708fa0b122e97114f07fa5f609229c9d67ac9426935416fbeb", - "transform": "Identity" - }, - { - "key": "hash-f8df015ba26860a7ec8cab4ee99f079325b0bbb9ef0e7810b63d85df39da95fe", - "transform": "Identity" - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": "Identity" - }, - { - "key": "balance-ecc530e74cf2185936a334aa1e0f07539aa3b33c4b547e71fc4109151755652f", - "transform": "Identity" - }, - { - "key": "balance-ea3c9bdcbe57f067a29609d397981b2d0fb39853a0a9f06e444b06404eadcb1a", - "transform": { - "WriteCLValue": { - "cl_type": "U512", - "bytes": "00", - "parsed": "0" - } + ], + [ + "amount", + { + "cl_type": "U512", + "bytes": "0500ac23fc06", + "parsed": "30000000000" } - }, - { - "key": "balance-ecc530e74cf2185936a334aa1e0f07539aa3b33c4b547e71fc4109151755652f", - "transform": { - "AddUInt512": "100000000" + ], + [ + "id", + { + "cl_type": { + "Option": "U64" + }, + "bytes": "01e703000000000000", + "parsed": 999 } - } - ] + ] + ], + "target": "Native", + "entry_point": "Transfer", + "transaction_category": 0, + "scheduling": "Standard" }, - "transfers": [ - "transfer-97426c848475dae98446f2c2fd00ec7901cd8ddfe250171ff4ed25d78412a612" - ], - "cost": "100000000" + "approvals": [ + { + "signer": "01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c", + "signature": "0137d3f468d8f8a6e63f4110d79be29b8c8428e9cd858a92049660e7851ae16a299640d1fc1c930ab6cb424f1a6eec0b194df74bede14f4af1b5133106f1280d0b" + } + ] + } + } + }, + "id": 6889533540839698701 +} + +``` + +
+ +### `speculative_exec_txn_result` + +The result contains the RPC API version and the speculative execution result. + +|Parameter|Type|Description| +|---------|----|-----------| +|api_version|String|The RPC API version.| +|[execution_result](./types_chain.md#executionresult)|Object|Result of the speculative execution.| + +
+ + + +Example speculative_exec_txn result + +```json + +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "name": "speculative_exec_txn_result", + "value": { + "api_version": "2.0.0", + "execution_result": { + "block_hash": "b597865a5f96ea23932173601bf6b170a482f562f6dd3598b2d37a86c1f01371", + "transfers": [], + "limit": "100000000000", + "consumed": "23289743502", + "effects": [ + { + "key": "uref-65d264188c3cf9e61862415424c99900ec1c858f168d94d98b332fe738bf2249-000", + "kind": { + "Write": { + "CLValue": { + "cl_type": "Unit", + "bytes": "", + "parsed": null + } + } + } + }, + { + "key": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "kind": { + "Write": { + "Package": { + "versions": [], + "disabled_versions": [], + "groups": [], + "lock_status": "Unlocked" + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-7f292691d790433e131a5ea69c70b85a959a454f5d928de437b11bf4e7c06930", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "10154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "parsed": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b" + }, + "name": { + "cl_type": "String", + "bytes": "19000000746573745f7061796d656e745f7061636b6167655f68617368", + "parsed": "test_payment_package_hash" + } + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-814d93d21458dd90914dba42395ec9c075bc105cf3ef7ae0215f2107f3b47848", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "0265d264188c3cf9e61862415424c99900ec1c858f168d94d98b332fe738bf224907", + "parsed": "uref-65d264188c3cf9e61862415424c99900ec1c858f168d94d98b332fe738bf2249-007" + }, + "name": { + "cl_type": "String", + "bytes": "13000000746573745f7061796d656e745f616363657373", + "parsed": "test_payment_access" + } + } + } + } + }, + { + "key": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "kind": "Identity" + }, + { + "key": "entity-system-63448411a9dac7fd2e4a1dc9287ddb95b6f26ebe549b1387e44685d6b56dab08", + "kind": "Identity" + }, + { + "key": "package-63227f4db8d0d09e3b4b64416125ac35023e1054e38127780ec241b2b60d8b3d", + "kind": "Identity" + }, + { + "key": "entry-point-v1-entity-system-63448411a9dac7fd2e4a1dc9287ddb95b6f26ebe549b1387e44685d6b56dab08-21bddc7e4379ba445c7118cb51962954e0d1e5aa5cacc0c4ff6095b57eb9fb33", + "kind": "Identity" + }, + { + "key": "uref-7a9d9c0c33540e9fd4c1245f6ac687c7eacf98ac1072591adc3f83332a909d86-000", + "kind": { + "Write": { + "CLValue": { + "cl_type": "Unit", + "bytes": "", + "parsed": null + } + } + } + }, + { + "key": "balance-7a9d9c0c33540e9fd4c1245f6ac687c7eacf98ac1072591adc3f83332a909d86", + "kind": { + "Write": { + "CLValue": { + "cl_type": "U512", + "bytes": "00", + "parsed": "0" + } + } + } + }, + { + "key": "byte-code-v1-wasm-9639481569c3940ce272402f0e9bc0ea535435ea9ffc18d8696e4af02c841354", + "kind": { + "Write": { + "ByteCode": { + "kind": "V1CasperWasm", + "bytes": "0061736d0100000001540c60027f7f017f60017f0060037f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f017f60087f7f7f7f7f7f7f7f017f60037f7f7f0060047f7f7f7f0060017f017f60000060057f7f7f7f7f017f60027f7f000289020a03656e760d6361737065725f726576657274000103656e76196361737065725f6765745f6e616d65645f6172675f73697a65000203656e76146361737065725f6765745f6e616d65645f617267000303656e76156361737065725f6765745f6d61696e5f7075727365000103656e761a6361737065725f6765745f73797374656d5f636f6e7472616374000203656e76146361737065725f63616c6c5f636f6e7472616374000403656e76176361737065725f726561645f686f73745f627566666572000203656e76236361737065725f7472616e736665725f66726f6d5f70757273655f746f5f7075727365000503656e76066d656d6f72790201114003656e760367617300010324230108080809080006060a080b07090b090701070008000802020202080907070008000804050170010808060e027f01418080c0000b7f0141000b070701037061790025090d010041010b071a262a2b2728290afc970123270041d4ab0810082000230141016a2401230141f4034b0440000b100a230141016b24011000000b240041a6960410082000230141046a2401230141f4034b0440000b100c230141046b24010b1b0041d8221008200041187441187541027441c481c0006a2802000bd20501027f41da880410082000410876210141012102024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041ff01710e3635000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334350b41a604100841020f0b41a604100841030f0b41a604100841040f0b41a604100841050f0b41a604100841060f0b41a604100841070f0b41a604100841080f0b41a604100841090f0b41a6041008410a0f0b41a6041008410b0f0b41a6041008410c0f0b41a6041008410d0f0b41a6041008410e0f0b41a6041008410f0f0b41a604100841100f0b41a604100841110f0b41a604100841120f0b41a604100841130f0b41a604100841140f0b41a604100841150f0b41a604100841160f0b41a604100841170f0b41a604100841180f0b41a604100841190f0b41a6041008411a0f0b41a6041008411b0f0b41a6041008411c0f0b41a6041008411d0f0b41a6041008411e0f0b41a6041008411f0f0b41a604100841200f0b41a604100841210f0b41a604100841220f0b41a604100841230f0b41a604100841240f0b41a604100841250f0b41a604100841260f0b41a604100841270f0b41a604100841280f0b41f20c1008200141ff01714180f803720f0b41f20c1008200141ff01714180fa03720f0b41f20c1008200141ff01714180fc03720f0b41f20c1008200141ff01714180fe03720f0b41f20c1008200041107641808004720f0b41a604100841290f0b41a6041008412a0f0b41a6041008412b0f0b41a6041008412c0f0b41a6041008412d0f0b41a6041008412e0f0b41a6041008412f0f0b41a604100841300f0b41f4031008413121020b418603100820020bab6309087f017e017f017e017f017e017f017e087f41b8f0111008230041e0026b2200240020004100360290020240024002400240024002400240418080c000410620004190026a1001230141086a2401230141f4034b0440000b100e230141086b2401220141ff017122024136460d0041a69702100820024101470d01419c960410084101230141016a2401230141f4034b0440000b1009230141016b2401000b41f2b3021008024002402000280290022202450d0041a6970210082002417f4c0d0341ccad06100820024101230141096a2401230141f4034b0440000b100f230141096b24012203450d0441d8cf0a100802400240418080c0004106200320021002230141086a2401230141f4034b0440000b100e230141086b2401220141ff01714136470d0041f0ad02100820032d0000220141c0004b0d0141849f0210082002417f6a22042001490d0141e28a12100820004190026a20016a410041c00020016b230141036a2401230141f4034b0440000b1020230141036b24011a20004190026a200341016a2001230141036a2401230141f4034b0440000b1023230141036b24011a20004180016a41376a2205200041c8026a29000037000020004180016a41306a2206200041c1026a29000037030020004180016a41286a2207200041b9026a290000220837030020004180016a41206a2209200041b1026a290000220a37030020004180016a41186a220b200041a9026a290000220c37030020004180016a41106a220d200041a1026a290000220e370300200041c0016a41086a220f20004190026a41096a290000370300200041c0016a41106a2210200e370300200041c0016a41186a2211200c370300200041c0016a41206a2212200a370300200041c0016a41286a22132008370300200041c0016a41306a22142006290300370300200041c0016a41376a2215200529000037000020002000290091023703c001200420016b450d0341d2ab061008200320024101230141086a2401230141f4034b0440000b1010230141086b24010c020b41ceb2081008200320024101230141036a2401230141f4034b0440000b1011230141036b24012001230141016a2401230141f4034b0440000b1009230141016b2401000b419a9a041008200320024101230141086a2401230141f4034b0440000b1010230141086b24010b419c960410084102230141016a2401230141f4034b0440000b1009230141016b2401000b419ef613100820002d0090022116200041c0006a41376a22012015290000370000200041c0006a41306a22042014290300370300200041c0006a41286a22142013290300370300200041c0006a41206a22132012290300370300200041c0006a41186a22122011290300370300200041c0006a41106a22112010290300370300200041c0006a41086a2210200f290300370300200020002903c001370340200320024101230141086a2401230141f4034b0440000b1010230141086b240120004180016a41086a2010290300370300200d2011290300370300200b2012290300370300200920132903003703002007201429030037030020062004290300370300200520012900003700002000200029034037038001200041c48ac000360240200041002802e482403602c001024041094101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802c0013602e482400c060b41848b071008200020002802402201280200360290020240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820012000280290023602000c040b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820012000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200120002802900236020020020d040b41cccd021008410020002802c0013602e482400c040b41b4980410082001230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084122230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084113230141016a2401230141f4034b0440000b1009230141016b2401000b41f4b608100820024100360204200220002802c001360208200220024180c0006a410272360200200020023602c00141094101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802c0013602e4824020020d010b419c960410084113230141016a2401230141f4034b0440000b1009230141016b2401000b2002100302400240024002400240024020022d0020220b41074b0d004188c1121008200041c0016a41106a2205200241116a290000370300200041c0016a41176a2206200241186a29000037000020004190026a41106a2201200529030037030020004190026a41176a2203200629000037000020004190026a41086a2204200241096a2900002208370300200041086a2008370300200041106a2001290300370300200041176a20032900003700002000200229000122083703900220022d0000210d41002802e4824021074100200241786a22033602e482402002200736020020032003280200417e713602002000200837030020004190026a41186a420037030020014200370300200442003703002000420037039002410120004190026a41201004230141086a2401230141f4034b0440000b100e230141086b2401220241ff01714136470d0141fa8b0a1008200041c0016a41086a2000419d026a2900003703002005200041a5026a2900003703002006200041ac026a28000036000020002000290095023703c00120002d009102210120002d009002210320002f019202210520002d0094022106200041c48ac000360220200041002802e08240360240024041084101200041c0006a200041206a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802403602e082400c040b41848b071008200020002802202204280200360290020240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820042000280290023602000c030b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820042000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200420002802900236020020020d030b41cccd021008410020002802403602e082400c040b41bec10c1008200241214101230141036a2401230141f4034b0440000b1011230141036b24014101230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b41b4980410082002230141016a2401230141f4034b0440000b1009230141016b2401000b41eeb80810082002410036020420022000280240360208200220024180c0006a4102723602002000200236024041084101200041c0006a200041206a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802403602e082402002450d010b41b2d60d1008200220002903c0013700052002410d6a200041c0016a41086a290300370000200241156a200041c0016a41106a2903003700002002411c6a200041c0016a41176a280000360000200220033a000020022005200641107472410874200172360001200041206a41086a200241096a290000370300200041206a41106a200241116a290000370300200041206a41176a200241186a29000037000041002802e082402105200229000121084100200241786a22013602e0824020002008370320200128020021062002200536020020012006417e71360200200041c48ac000360240200020013602c0010240024041084101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802c0013602e082400c010b41aac70f10082000200028024022012802003602900202400240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820012000280290023602000c010b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820012000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200120002802900236020020020d010b41b0c0001008410020002802c0013602e0824000000b20024100360204200220002802c001360208200220024180c0006a410272360200200020023602c00141084101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802c0013602e082402002450d010b419ad609100820022000290320370001200220033a0000200241186a200041376a290000370000200241116a200041306a290300370000200241096a200041286a290300370000200041c48ac000360240200041002802d882403602c0010240024041064101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012203450d0041cccd021008410020002802c0013602d882400c010b41aac70f10082000200028024022032802003602900202400240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012201450d0041e4cf02100820032000280290023602000c010b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012201417f470d0041e4cf02100820032000280290023602000c010b41bab7081008200141107422014100360204200120002802900236020820012001418280046a3602002000200136029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012101200320002802900236020020010d010b41b0c0001008410020002802c0013602d8824000000b20014100360204200120002802c001360208200120014180c0006a410272360200200020013602c00141064101200041c0016a200041c0006a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012103410020002802c0013602d882402003450d010b41c08d081008200341113600002003410029008680403700042003410c6a410029008e8040370000200341146a41002d009680403a000041044101230141096a2401230141f4034b0440000b100f230141096b24012206450d0041daa00b1008200641003600000240024002400240024002400240024002400240024020024120200341152006410420004190026a1005230141086a2401230141f4034b0440000b100e230141086b2401220141ff01714136470d004182ad0210082000280290022201450d0441a6970210082001417f4c0d0141ccad06100820014101230141096a2401230141f4034b0440000b100f230141096b24012205450d0241d2cc0a100820052001200041c0016a1006230141086a2401230141f4034b0440000b100e230141086b2401220441ff01714136470d03419a9b0210084100210420014120490d0541a69702100820014120460d0541e4b10210084101210420052d0020221241074b0d0541dadf05100820052d00002113200041c0016a41176a2207200541016a220441176a290000370000200041c0016a41106a2209200441106a29000037030020004190026a41086a220f200441086a29000037030020004190026a41106a2210200929030037030020004190026a41176a221120072900003700002000200429000037039002024020014121460d0041c6af061008200520014101230141086a2401230141f4034b0440000b1010230141086b2401410221040c0d0b41c0b81b1008200041c0006a41176a22042011290000370000200041c0006a41106a22112010290300370300200041c0006a41086a2210200f2903003703002000200029039002370340200520014101230141086a2401230141f4034b0440000b1010230141086b2401200041c0016a41086a20102903003703002009201129030037030020072004290000370000200020002903403703c001200641044101230141086a2401230141f4034b0440000b1010230141086b2401200341154101230141086a2401230141f4034b0440000b1010230141086b2401200241002802e082403602004100200241786a22023602e0824020022002280200417e7136020020004199026a2202200041086a290300370000200041a1026a2201200041106a290300370000200041a8026a2203200041176a2900003700002000200d3a00900220002000290300370091022000200b3a00b002200041c0006a20004190026a230141086a2401230141f4034b0440000b1014230141086b24012000280244220b450d06418eda091008200028024821112000280240210d2002200041c0016a41086a2903003700002001200041c0016a41106a2903003700002003200041d7016a290000370000200020133a009002200020002903c00137009102200020123a00b002200041c0006a20004190026a230141086a2401230141f4034b0440000b1014230141086b24012000280244220f450d0741a2a90710082000280248211220002802402110200041c8026a200041b7016a29000037000020004199026a20004180016a41086a290300370000200041a1026a20004180016a41106a290300370000200041a9026a20004198016a290300370000200041b1026a200041a0016a290300370000200041b9026a200041a8016a290300370000200041c1026a200041b0016a290300370000200020163a009002200020002903800137009102024020002d00cf022202450d004190a0021008200041cf026a2104200221160c090b41bab0021008024020002d00ce022202450d004190a0021008200041ce026a2104200221160c090b41bab0021008024020002d00cd022202450d004190a0021008200041cd026a2104200221160c090b41bab0021008024020002d00cc022202450d004190a0021008200041cc026a2104200221160c090b41bab0021008024020002d00cb022202450d004190a0021008200041cb026a2104200221160c090b41bab0021008024020002d00ca022202450d004190a0021008200041ca026a2104200221160c090b41bab0021008024020002d00c9022202450d004190a0021008200041c9026a2104200221160c090b41bab0021008024020002d00c8022202450d004190a0021008200041c8026a2104200221160c090b41bab0021008024020002d00c7022202450d004190a0021008200041c7026a2104200221160c090b41bab0021008024020002d00c6022202450d004190a0021008200041c6026a2104200221160c090b41bab0021008024020002d00c5022202450d004190a0021008200041c5026a2104200221160c090b41bab0021008024020002d00c4022202450d004190a0021008200041c4026a2104200221160c090b41bab0021008024020002d00c3022202450d004190a0021008200041c3026a2104200221160c090b41bab0021008024020002d00c2022202450d004190a0021008200041c2026a2104200221160c090b41bab0021008024020002d00c1022202450d004190a0021008200041c1026a2104200221160c090b41bab0021008024020002d00c0022202450d004190a0021008200041c0026a2104200221160c090b41bab0021008024020002d00bf022202450d004190a0021008200041bf026a2104200221160c090b41bab0021008024020002d00be022202450d004190a0021008200041be026a2104200221160c090b41bab0021008024020002d00bd022202450d004190a0021008200041bd026a2104200221160c090b41bab0021008024020002d00bc022202450d004190a0021008200041bc026a2104200221160c090b41bab0021008024020002d00bb022202450d004190a0021008200041bb026a2104200221160c090b41bab0021008024020002d00ba022202450d004190a0021008200041ba026a2104200221160c090b41bab0021008024020002d00b9022202450d004190a0021008200041b9026a2104200221160c090b41bab0021008024020002d00b8022202450d004190a0021008200041b8026a2104200221160c090b41bab0021008024020002d00b7022202450d004190a0021008200041b7026a2104200221160c090b41bab0021008024020002d00b6022202450d004190a0021008200041b6026a2104200221160c090b41bab0021008024020002d00b5022202450d004190a0021008200041b5026a2104200221160c090b41bab0021008024020002d00b4022202450d004190a0021008200041b4026a2104200221160c090b41bab0021008024020002d00b3022202450d004190a0021008200041b3026a2104200221160c090b41bab0021008024020002d00b2022202450d004190a0021008200041b2026a2104200221160c090b41bab0021008024020002d00b1022202450d004190a0021008200041b1026a2104200221160c090b41bab0021008024020002d00b0022202450d004190a0021008200041b0026a2104200221160c090b41bab0021008024020002d00af022202450d004190a0021008200041af026a2104200221160c090b41bab0021008024020002d00ae022202450d004190a0021008200041ae026a2104200221160c090b41bab0021008024020002d00ad022202450d004190a0021008200041ad026a2104200221160c090b41bab0021008024020002d00ac022202450d004190a0021008200041ac026a2104200221160c090b41bab0021008024020002d00ab022202450d004190a0021008200041ab026a2104200221160c090b41bab0021008024020002d00aa022202450d004190a0021008200041aa026a2104200221160c090b41bab0021008024020002d00a9022202450d004190a0021008200041a9026a2104200221160c090b41bab0021008024020002d00a8022202450d004190a0021008200041a8026a2104200221160c090b41bab0021008024020002d00a7022202450d004190a0021008200041a7026a2104200221160c090b41bab0021008024020002d00a6022202450d004190a0021008200041a6026a2104200221160c090b41bab0021008024020002d00a5022202450d004190a0021008200041a5026a2104200221160c090b41bab0021008024020002d00a4022202450d004190a0021008200041a4026a2104200221160c090b41bab0021008024020002d00a3022202450d004190a0021008200041a3026a2104200221160c090b41bab0021008024020002d00a2022202450d004190a0021008200041a2026a2104200221160c090b41bab0021008024020002d00a1022202450d004190a0021008200041a1026a2104200221160c090b41bab0021008024020002d00a0022202450d004190a0021008200041a0026a2104200221160c090b41bab0021008024020002d009f022202450d004190a00210082000419f026a2104200221160c090b41bab0021008024020002d009e022202450d004190a00210082000419e026a2104200221160c090b41bab0021008024020002d009d022202450d004190a00210082000419d026a2104200221160c090b41bab0021008024020002d009c022202450d004190a00210082000419c026a2104200221160c090b41bab0021008024020002d009b022202450d004190a00210082000419b026a2104200221160c090b41bab0021008024020002d009a022202450d004190a00210082000419a026a2104200221160c090b41bab0021008024020002d0099022202450d004190a002100820004199026a2104200221160c090b41bab0021008024020002d0098022202450d004190a002100820004198026a2104200221160c090b41bab0021008024020002d0097022202450d004190a002100820004197026a2104200221160c090b41bab0021008024020002d0096022202450d004190a002100820004196026a2104200221160c090b41bab0021008024020002d0095022202450d004190a002100820004195026a2104200221160c090b41bab0021008024020002d0094022202450d004190a002100820004194026a2104200221160c090b41bab0021008024020002d0093022202450d004190a002100820004193026a2104200221160c090b41bab0021008024020002d0092022202450d004190a002100820004192026a2104200221160c090b41bab0021008024020002d0091022202450d004190a002100820004191026a2104200221160c090b41a4a002100820004190026a2104201641ff01710d0841c0ea02100841002102200041003602482000428080808010370340410021010c090b41b4980410082001230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084122230141016a2401230141f4034b0440000b1009230141016b2401000b419c960410084113230141016a2401230141f4034b0440000b1009230141016b2401000b41e4b2051008200020043a009002200020044118763a009302200020044108763b009102200028029002230141016a2401230141f4034b0440000b1009230141016b2401000b41ac95021008410021040c070b41d2ab061008200520014101230141086a2401230141f4034b0440000b1010230141086b24010c060b4198bf08100820002d0040230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b4198bf08100820002d0040230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b41e6ef0510080240024002400240024002400240024041002802c882402202450d0041b8031008034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210502400240024020022802002206417c7122030d0041c497021008200121060c010b418a9d02100802402006410271450d0041c497021008200121060c010b419afa0210082003200328020441037120017236020420022802042203417c712206450d0141ba3610082002280200417c712103200628020021050b4184cd00100820062005410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4108490d0041f6a10210080240200141106a200541786a4d0d0041aeb40210082001280200417c712105200221010c0a0b41fcae07100841002103200541706a220141003602082001420037020020012002280200417c71360200024020022802002206417c712205450d0041d89702100820064102710d0041e2e300100820052005280204410371200172360204200128020441037121030b20012003200272360204200241086a22032003280200417e71360200200220022802002203410371200172220536020020034102710d034188ab021008200128020021030c040b4188ab021008200128020022020d000b0b41a2ae021008024041002802c48a402202450d0041b8031008034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210602400240024020022802002205417c7122030d0041c497021008200121050c010b418a9d02100802402005410271450d0041c497021008200121050c010b419afa0210082003200328020441037120017236020420022802042203417c712205450d0141ba3610082002280200417c712103200528020021060b4184cd00100820052006410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4180c000490d0041f6a1021008024020014188106a20054180406a4d0d0041d89702100820014103710d0141aeb4021008200221052001280200417c7121020c080b41fcae07100841002101200541f8bf7f6a220541003602082005420037020020052002280200417c71360200024020022802002206417c712203450d0041d89702100820064102710d0041e2e300100820032003280204410371200572360204200528020441037121010b20052001200272360204200241086a22012001280200417e71360200200220022802002201410371200572220336020020014102710d054188ab021008200528020021030c070b4188ab021008200128020022020d000b0b41ccee10100802404101230141036a2401230141f4034b0440000b1024230141036b24012202417f460d0041d0df00100820024110742202420037020420022002418280046a360200034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210502400240024020022802002206417c7122030d0041c497021008200121060c010b418a9d02100802402006410271450d0041c497021008200121060c010b419afa0210082003200328020441037120017236020420022802042203417c712206450d0141ba3610082002280200417c712103200628020021050b4184cd00100820062005410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4180c000490d0041f6a1021008024020014188106a20054180406a4d0d0041d89702100820014103710d0141aeb4021008200221052001280200417c7121020c080b41b4b207100841002101200541f8bf7f6a220541003602082005420037020020052002280200417c71360200024020022802002206417c712203450d0041d89702100820064102710d0041e2e300100820032003280204410371200572360204200528020441037121010b20052001200272360204200241086a22012001280200417e713602002002200228020022014103712005722203360200024020014102710d004188ab021008200528020021030c080b41a4dc02100820022003417d71360200200528020041027221030c060b4188ab021008200128020022020d000b0b41f0b7021008410041003602c48a400c050b41cef200100820022005417d713602002001200128020041027222033602000b41c497021008200221050c040b41ecca00100820022003417d71360200200528020041027221030b41e82a1008200520033602000b41a8be011008410020023602c48a40200520034101723602002005410c6a4200370200200520054188c0006a410272360208200541086a2102034041f4f40410080240200241086a2d0000410171450d0041b80310080340418af408100820022002280208417e713602082002280204417c712201280200210502400240024020022802002206417c7122030d0041c497021008200121060c010b418a9d02100802402006410271450d0041c497021008200121060c010b419afa0210082003200328020441037120017236020420022802042203417c712206450d0141ba3610082002280200417c712103200628020021050b4184cd00100820062005410371200372360200200228020421030b2002200341037136020420022002280200220341037136020002402003410271450d0041c6c1001008200120012802004102723602000b20012102200141086a2d00004101710d000b0b024020022802002203417c712205200241086a22016b4108490d0041f6a10210080240200141106a200541786a4d0d0041aeb40210082001280200417c712105200221010c040b41b4b207100841002103200541706a220141003602082001420037020020012002280200417c71360200024020022802002206417c712205450d0041d89702100820064102710d0041e2e300100820052005280204410371200172360204200128020441037121030b20012003200272360204200241086a22032003280200417e713602002002200228020022034103712001722205360200024020034102710d004194b102100820012802002103200221050c040b41928a03100820022005417d71360200200120012802004102722203360200200221050c030b4188ab021008200128020022020d000b0b41d42a1008410041003602c8824000000b410020053602c88240200120163a000820012003410172360200200141086a2105024020004190026a2004470d0041a89503100841012102200041013602482000200536024420004108360240410121030c020b41a00b100841082101410121020340418cbc0210082004417f6a22042d00002103024020022001470d0041b69f0210080240200141016a2206450d0041caf9071008200020053602402000200136024420004101360248200041d0026a200141017422162006201620064b1b22064108200641084b1b22062006417f73411f76200041c0006a230141046a2401230141f4034b0440000b1015230141046b2401024020002802d0020d004194b102100820002802d4022105200621010c020b41f0ad02100820002802d8022206418180808078460d0141be9402100820060d050b41ae95041008230141016a2401230141f4034b0440000b1016230141016b2401000b418ad4021008200520026a20033a0000200241016a2102200420004190026a470d000b4182a00310082000200236024820002005360244200020013602402002210320022001470d010b418ccf041008200041c0006a2001230141086a2401230141f4034b0440000b1017230141086b240120002802442105200028024821030b41ccce051008200520036a221620023a00002000200341016a2209360248024020094102490d0041c4be041008410021020240200941017622134101460d004184251008410021014100200941017641feffffff07716b21072005210203404182c004100820022d000021062002201620016a22032d00003a0000200320063a0000200241016a22062d0000210420062003417f6a22032d00003a0000200320043a0000200241026a210220072001417e6a2201470d000b410020016b21020b2009410271450d0041c2a3011008200520026a22012d000021032001200520096a20136b20132002417f736a6a22022d00003a0000200220033a00000b2000280240210102400240024020002802442203450d00419ab907100820002802482105200041c48ac0003602d002200041002802c48240360240024041014101200041c0006a200041d0026a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041cccd021008410020002802403602c482400c030b41848b071008200020002802d0022206280200360290020240418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012202450d0041e4cf02100820062000280290023602000c020b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041e4cf02100820062000280290023602000c010b41bab7081008200241107422024100360204200220002802900236020820022002418280046a3602002000200236029002418010410420004190026a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102200620002802900236020020020d020b41b0c0001008410020002802403602c4824000000b41d4ab0810082001230141026a2401230141f4034b0440000b1013230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b41eeb80810082002410036020420022000280240360208200220024180c0006a4102723602002000200236024041014101200041c0006a200041d0026a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012102410020002802403602c482402002450d010b41feee151008200241003a0000200b2011200f2012200320052002410110072105200241014101230141086a2401230141f4034b0440000b1010230141086b240102402001450d00419a9a041008200320014101230141086a2401230141f4034b0440000b1010230141086b24010b02402010450d00419a9a041008200f20104101230141086a2401230141f4034b0440000b1010230141086b24010b0240200d450d00419a9a041008200b200d4101230141086a2401230141f4034b0440000b1010230141086b24010b02402005230141086a2401230141f4034b0440000b100e230141086b2401220241ff01714136470d0041840c1008200041e0026a24000f0b41b4980410082002230141016a2401230141f4034b0440000b1009230141016b2401000b419c04100800000b41d4ab0810082004230141026a2401230141f4034b0440000b100b230141026b2401230141016a2401230141f4034b0440000b1009230141016b2401000b880801047f41fc8004100841002101413621024100210341002104024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020000e323332000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f310b41ac95021008410121040c2f0b41ac95021008410221040c2e0b41ac95021008410321040c2d0b41ac95021008410421040c2c0b41ac95021008410521040c2b0b41ac95021008410621040c2a0b41ac95021008410721040c290b41ac95021008410821040c280b41ac95021008410921040c270b41ac95021008410a21040c260b41ac95021008410b21040c250b41ac95021008410c21040c240b41ac95021008410d21040c230b41ac95021008410e21040c220b41ac95021008410f21040c210b41ac95021008411021040c200b41ac95021008411121040c1f0b41ac95021008411221040c1e0b41ac95021008411321040c1d0b41ac95021008411421040c1c0b41ac95021008411521040c1b0b41ac95021008411621040c1a0b41ac95021008411721040c190b41ac95021008411821040c180b41ac95021008411921040c170b41ac95021008411a21040c160b41ac95021008411b21040c150b41ac95021008411c21040c140b41ac95021008411d21040c130b41ac95021008411e21040c120b41ac95021008411f21040c110b41ac95021008412021040c100b41ac95021008412121040c0f0b41ac95021008412221040c0e0b41ac95021008412321040c0d0b41ac95021008412421040c0c0b41ac95021008412521040c0b0b41ac95021008412621040c0a0b41ac95021008412721040c090b41ac95021008412d21040c080b41ac95021008412e21040c070b41ac95021008412f21040c060b41ac95021008413021040c050b41ac95021008413121040c040b41ac95021008413221040c030b41ac95021008413321040c020b41ac95021008413421040c010b41f4031008413521040b41ac95021008410021030c010b41a0a8021008024002400240024020004180807c7141808004460d0041c69d021008200041807e7122024180fa03460d0241a69702100820024180fc03460d01419aa5021008412b2104410021032000210120024180fe03460d0441f2b30210084128411e20024180f8034622021b2104410021032000410020021b21010c040b41d29e02100820004110742103412c21040c030b41ac95021008412a21040c010b41f4031008412921040b41800a100841002103200021010b41a4171008200420037220014108744180fe03717221020b20020bda0401047f4198db021008230041106b22022400200041036a220341027621000240024002400240417f200141044720014104491b2204417f460d0041d897021008200441ff01710d010b41f29f0210082000417f6a22044180024922050d010b41a4c2091008200241002802c48a4036020c0240200020012002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240122040d0041c497111008410021042003417c7122032001410374418080016a2205200320054b1b418780046a2203411076230141036a2401230141f4034b0440000b1024230141036b24012205417f460d0041ccf10510082005411074220441003602042004200228020c3602082004200420034180807c716a4102723602002002200436020c200020012002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240121040b4100200228020c3602c48a400c010b41d0f2071008200241c48ac0003602082002200441027441c482c0006a410020051b220328020036020c0240200020012002410c6a200241086a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b240122040d0041eecd0610082002200241086a20002002230141096a2401230141f4034b0440000b1019230141096b24014100210420022802000d00418aa805100820022802042204200228020c3602082002200436020c200020012002410c6a200241086a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b240121040b2003200228020c3602000b200241106a240020040bbc0401047f41e0a00210080240024002402000450d0041b8960210082001450d0041d0b1021008024002400240417f200241044720024104491b2202417f460d0041d897021008200241ff01710d010b41c6a2021008200141036a410276417f6a2201418002490d010b41ecc603100820004100360200200041786a220120012802002202417e7136020041002802c48a40210302400240200141046a2204280200417c712205450d0041a2ae021008200528020022064101710d0041a6b10510080240024002402002417c7122000d0041c497021008200521020c010b418a9d02100802402002410271450d0041c497021008200521020c010b419afa0210082000200028020441037120057236020420042802002200417c712202450d0141ba3610082001280200417c712100200228020021060b4184cd00100820022006410371200072360200200428020021000b200420004103713602002001200128020022004103713602002000410271450d0141fed2021008200520052802004102723602000c010b41d89c0210082002417c712205450d0341d89702100820024102710d03419cab02100820052d00004101710d03418ef50010082000200541086a2202280200417c71360200200220014101723602000b41c497021008200321010c030b4180b90110082000200141027441c482c0006a2201280200360200200041786a22002000280200417e71360200200120003602000b41b80310080f0b41e82a1008200020033602000b41d0281008410020013602c48a400b280041b29c041008200020012002230141086a2401230141f4034b0440000b1010230141086b24010bd40501077f41bab0021008024020022802002205450d0041f61d10082001417f6a2106410020016b21072000410274210803404186f40410080240200541086a2d0000410171450d0041b8031008034041f29e09100820052005280208417e713602082005280204417c71220128020021090240024002402005280200220a417c71220b0d0041c4970210082001210a0c010b418a9d0210080240200a410271450d0041c4970210082001210a0c010b419afa021008200b200b2802044103712001723602042005280204220b417c71220a450d0141ba3610082005280200417c71210b200a28020021090b4184cd001008200a2009410371200b723602002005280204210b0b2005200b41037136020420052005280200220b4103713602000240200b410271450d0041c6c1001008200120012802004102723602000b2002200136020020012105200141086a2d00004101710d000b0b02402005280200417c71220b200541086a22016b2008490d0041e0e40610080240024020012003200020042802101100004102746a41086a200b20086b200771220b4d0d0041f09902100820062001710d02419af50210082002200541086a280200417c713602002005280200210b200521010c010b41b4b207100841002109200b4100360200200b41786a2201420037020020012005280200417c7136020002402005280200220a417c71220b450d0041d897021008200a4102710d0041e2e3001008200b200b280204410371200172360204200128020441037121090b20012009200572360204200541086a220b200b280200417e7136020020052005280200220b41037120017222093602000240200b4102710d004188ab0210082001280200210b0c010b41cef200100820052009417d7136020020012001280200410272220b3602000b41803710082001200b410172360200200141086a0f0b41f0d502100820022001280200220536020020050d000b0b41ee00100841000b1b0041d82210082000411874411875410274418c82c0006a2802000bed0401037f4184fa0a1008230041106b22022400200241c48ac000360204200241002802e482403602080240024041094101200241086a200241046a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012203450d0041cccd021008410020022802083602e482400c010b41f49107100820022002280204220428020036020c02400240024041801041042002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012203450d0041e4cf0210082004200228020c3602000c010b4184f2101008024002404101230141036a2401230141f4034b0440000b1024230141036b24012203417f470d0041e4cf0210082004200228020c3602000c010b41bab70810082003411074220341003602042003200228020c36020820032003418280046a3602002002200336020c41801041042002410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240121032004200228020c36020020030d010b41cccd021008410020022802083602e482400c010b41f4b60810082003410036020420032002280208360208200320034180c0006a4102723602002002200336020841094101200241086a200241046a419481c0002301410b6a2401230141f4034b0440000b10122301410b6b24012103410020022802083602e4824020030d010b419c04100800000b20004121360208200020033602042000412136020020032001290000370000200320012d00203a0020200341186a200141186a290000370000200341106a200141106a290000370000200341086a200141086a290000370000200241106a24000be10201017f41a89d021008024002402002450d004186a5021008024002400240024020014100480d0041fca90210082003280208450d014182ad02100820032802042204450d01419cc70610082003280200210320014101230141096a2401230141f4034b0440000b100f230141096b24012202450d0341bccb0a1008200220032004230141036a2401230141f4034b0440000b1023230141036b24011a200320044101230141086a2401230141f4034b0440000b1010230141086b24010c020b41c8bc021008200041086a41003602000c040b41ccad06100820014101230141096a2401230141f4034b0440000b100f230141096b24012202450d010b41988401100820002002360204200041086a2001360200200041003602000f0b41808201100820002001360204200041086a4101360200200041013602000f0b41f8d500100820002001360204200041086a41003602000b41d0281008200041013602000b230041ae95041008230141016a2401230141f4034b0440000b1018230141016b2401000baa0201037f418cb7021008230041206b2202240002400240200141016a2201450d0041e8b20910082000280200220341017422042001200420014b1b22014108200141084b1b2201417f73411f762104024002402003450d0041dca503100820024101360218200220033602142002200041046a2802003602100c010b41d0281008200241003602180b200220012004200241106a230141046a2401230141f4034b0440000b1015230141046b2401024020022802000d0041d8800310082002280204210320002001360200200020033602040c020b41b0b0021008200241086a2802002200418180808078460d0141b8960210082000450d00419c04100800000b41ae95041008230141016a2401230141f4034b0440000b1016230141016b2401000b200241206a24000b0900419c04100800000b9d0301047f41d698081008230041106b2204240020042001280200220528020036020c024002400240200241026a220120016c220141801020014180104b1b220241042004410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b24012201450d00418ad90210082005200428020c360200200241027421060c010b41b08d111008024002402002410274220641a08001200641a080014b1b418780046a2207411076230141036a2401230141f4034b0440000b1024230141036b24012201417f470d0041e4cf0210082005200428020c3602000c010b419ec20810082001411074220141003602042001200428020c3602082001200120074180807c716a4102723602002004200136020c200241042004410c6a419481c00041ac81c0002301410b6a2401230141f4034b0440000b10122301410b6b240121012005200428020c36020020010d010b41a09902100841012102410021010c010b419edf001008200142003702042001200120066a410272360200410021020b2000200136020420002002360200200441106a24000b02000b9801004190f011100802400240200241027422022003410374418080016a2203200220034b1b418780046a2203411076230141036a2401230141f4034b0440000b1024230141036b24012202417f470d0041a09902100841012103410021020c010b41d8e80010082002411074220242003702042002200220034180807c716a410272360200410021030b20002002360204200020033602000b0a0041ee0010084180040b090041ee00100841010b0900418603100820010b090041ee00100841000b280041b29c041008200020012002230141066a2401230141f4034b0440000b1022230141066b24010b8c0301087f418cbb041008024002402002410f4b0d0041c497021008200021030c010b41c6850510082000410020006b41037122046a210502402004450d0041d00f10082000210320012106034041fce5021008200320062d00003a0000200641016a2106200341016a22032005490d000b0b2005200220046b2207417c7122086a210302400240200120046a22094103712206450d0041a69702100820084101480d0141fa3d10082009417c71220a41046a21014100200641037422026b4118712104200a280200210603404198f9021008200520062002762001280200220620047472360200200141046a2101200541046a22052003490d0041b8910210080c020b0b41a69702100820084101480d0041c409100820092101034041fce502100820052001280200360200200141046a2101200541046a22052003490d000b0b20074103712102200920086a21010b02402002450d00419c0e1008200320026a2105034041fce5021008200320012d00003a0000200141016a2101200341016a22032005490d000b0b20000be80101037f418cbb041008024002402002410f4b0d0041c497021008200021030c010b419aea0410082000410020006b41037122046a210502402004450d0041c409100820002103034041ecc9021008200320013a0000200341016a22032005490d000b0b2005200220046b2204417c7122026a2103024020024101480d0041bc0f1008200141ff017141818284086c2102034041ecc902100820052002360200200541046a22052003490d000b0b200441037121020b02402002450d00419c0e1008200320026a2105034041ecc9021008200320013a0000200341016a22032005490d000b0b20000b280041b29c0410082000200120022301410c6a2401230141f4034b0440000b10212301410c6b24010b0f00200020004180d30e6c100840000b1c002301411f6a2401230141f4034b0440000b100d2301411f6b24010b24002000200120022003230141096a2401230141f4034b0440000b1019230141096b24010b24002000200120022003230141046a2401230141f4034b0440000b101b230141046b24010b200020002001230141016a2401230141f4034b0440000b101c230141016b24010b1e002000230141016a2401230141f4034b0440000b101d230141016b24010b200020002001230141016a2401230141f4034b0440000b101e230141016b24010b1e002000230141016a2401230141f4034b0440000b101f230141016b24010b0bce020100418080c0000bc402616d6f756e746765745f7061796d656e745f7075727365706179746573745f7061796d656e745f7061636b6167655f68617368746573745f7061796d656e745f616363657373636f6e74726163745f76657273696f6e746573745f7061796d656e745f6861736863616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c7565000001000000040000000400000002000000030000000400000001000000000000000100000005000000060000000700000010000000110000001200000013000000270000002600000027000000260000001000000010000000100000001100000012000000130000002200000022000000420000002a0000001000000011000000120000001300000027000000260000002200000022000000420000002a00000041000000290000002100000021000000" + } + } + } + }, + { + "key": "entry-point-v1-entity-contract-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e-0c5d85bbfb4ae1310aff9ce7b0699549e6d5d5094eba44c5fe2b1e278a673166", + "kind": { + "Write": { + "EntryPoint": { + "V1CasperVm": { + "name": "pay", + "args": [ + { + "name": "amount", + "cl_type": "U512" + } + ], + "ret": "Unit", + "access": "Public", + "entry_point_type": "Called", + "entry_point_payment": "Caller" + } + } + } + } + }, + { + "key": "entity-contract-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e", + "kind": { + "Write": { + "AddressableEntity": { + "protocol_version": "2.0.0", + "entity_kind": { + "SmartContract": "VmCasperV1" + }, + "package_hash": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "byte_code_hash": "byte-code-9639481569c3940ce272402f0e9bc0ea535435ea9ffc18d8696e4af02c841354", + "main_purse": "uref-7a9d9c0c33540e9fd4c1245f6ac687c7eacf98ac1072591adc3f83332a909d86-007", + "associated_keys": [ + { + "account_hash": "account-hash-58749b769807d041002896ca59f55ec1c87197f66b82d9aee229c91eed7dfc8d", + "weight": 1 + } + ], + "action_thresholds": { + "deployment": 1, + "upgrade_management": 1, + "key_management": 1 + }, + "message_topics": [] + } + } + } + }, + { + "key": "package-154847e85beee3b5cd1c769b8f01dbc4b93d1cea8370c0b3bc1858d0d248a48b", + "kind": { + "Write": { + "Package": { + "versions": [ + { + "entity_version_key": { + "protocol_version_major": 2, + "entity_version": 1 + }, + "addressable_entity_hash": "addressable-entity-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e" + } + ], + "disabled_versions": [], + "groups": [], + "lock_status": "Unlocked" + } + } + } + }, + { + "key": "uref-2e024fc493ffb93847290be74a6f921a4226c142b5b196654b5a9c724cb2a726-000", + "kind": { + "Write": { + "CLValue": { + "cl_type": "U32", + "bytes": "01000000", + "parsed": 1 + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-1a77e4ba31d02a3941319349f259d5fb02ef3ed70f92775cd18b8aba359441e2", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "022e024fc493ffb93847290be74a6f921a4226c142b5b196654b5a9c724cb2a72607", + "parsed": "uref-2e024fc493ffb93847290be74a6f921a4226c142b5b196654b5a9c724cb2a726-007" + }, + "name": { + "cl_type": "String", + "bytes": "10000000636f6e74726163745f76657273696f6e", + "parsed": "contract_version" + } + } + } + } + }, + { + "key": "named-key-entity-account-7ba7c904427d5fe653b99584c07c3c5963b6ea2e75ad87aea69b71a65bf6fcea-9dbabf5ba4a0f30fd2fc8085b3b0baccf6bedc38c362d571b7912387d0bd8f39", + "kind": { + "Write": { + "NamedKey": { + "named_key": { + "cl_type": "Key", + "bytes": "1102eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e", + "parsed": "entity-contract-eb1c971063155d461059292e91cfe2212d45b79a49294b8d90bdae18cda6e59e" + }, + "name": { + "cl_type": "String", + "bytes": "11000000746573745f7061796d656e745f68617368", + "parsed": "test_payment_hash" + } + } + } + } + } + ], + "messages": [], + "error": null } } } diff --git a/source/docs/casper/developers/json-rpc/minimal-compliance.md b/source/docs/casper/developers/json-rpc/minimal-compliance.md index 2e6fbae77d..81263c0233 100644 --- a/source/docs/casper/developers/json-rpc/minimal-compliance.md +++ b/source/docs/casper/developers/json-rpc/minimal-compliance.md @@ -20,7 +20,7 @@ The methods included in this document represent the most basic, fundamental endp :::note -The deprecated method `state_get_balance` should not be used. +The deprecated methods `state_get_balance` and `state_get_item` should not be used. ::: diff --git a/source/docs/casper/developers/json-rpc/types_chain.md b/source/docs/casper/developers/json-rpc/types_chain.md index 3ccd3a6bf6..13c39dcbb5 100644 --- a/source/docs/casper/developers/json-rpc/types_chain.md +++ b/source/docs/casper/developers/json-rpc/types_chain.md @@ -1,8 +1,8 @@ -# Types {#types} +# Types The following definitions expand on parameters seen elsewhere within the SDK standard and are provided for clarity and completeness. -## Account {#account} +## Account Structure representing a user's Account, stored in global state. @@ -10,7 +10,7 @@ Required Parameters: * [`account_hash`](#accounthash) -* [`action_thresholds`](#actionthresholds) +* [`action_thresholds`](#accountactionthresholds) * [`associated_keys`](#associatedkey) @@ -18,52 +18,58 @@ Required Parameters: * [`named_keys`](#namedkey) -## AccountHash {#accounthash} +## AccountActionThresholds -The AccountHash is a 32-byte hash derived from a supported PublicKey. Its role is to standardize keys that can vary in length. +Thresholds that have to be met when executing an action of a certain type. -## AccountIdentifier {#accountidentifier} +Required Parameters: -Identifier of an account. +* [`deployment`](#accountassociatedkeyweight) Threshold for deploy execution. -Contains one of: +* [`key_management`](#accountassociatedkeyweight) Threshold for managing account keys. -* [`PublicKey`](#publickey) +## AccountAssociatedKeys -* [`AccountHash`](#accounthash) +A [collection of weighted public keys](#array-of-associatedkey) (represented as account hashes) associated with an account. -## ActionThresholds {#actionthresholds} +## AccountAssociatedKeyWeight -Thresholds that have to be met when executing an action of a certain type. +The weight associated with public keys in an account's associated keys. -Required Parameters: +## AccountHash -* `deployment` +The AccountHash is a 32-byte hash derived from a supported PublicKey. Its role is to standardize keys that can vary in length. -* `upgrade_management` +## AccountIdentifier -* `key_management` +Identifier of an account. -## ActivationPoint {#activationpoint} +Contains one of: + +* [`PublicKey`](#publickey) + +* [`AccountHash`](#accounthash) + +## ActivationPoint The first era to which the associated protocol version applies. -* [`era_id`](#eraid) +Any of: -* [`timestamp`](#timestamp) +* [`era_id`](#eraid) Era ID. + +* [`timestamp`](#timestamp) Genesis timestamp. -## AddressableEntity {#addressableentity} +## AddressableEntity -* [`action_thresholds`](#actionthresholds) +* [`action_thresholds`](#entityactionthresholds) -* [`associated_keys`](#associatedkeys) +* [`associated_keys`](#entityassociatedkeys) * [`byte_code_hash`](#bytecodehash) * [`entity_kind`](#entitykind) -* [`entry_points`](#array_of_namedentrypoint) - * [`main_purse`](#uref) * [`message_topics`](#array_of_messagetopic) @@ -72,11 +78,11 @@ The first era to which the associated protocol version applies. * [`protocol_version`](#protocolversion) -## AddressableEntityHash {#addressableentityhash} +## AddressableEntityHash The hex-encoded address of the addressable entity. -## Approval {#approval} +## Approval A struct containing a signature and the public key of the signer. @@ -86,51 +92,47 @@ Required Parameters: * [`signer`](#publickey) -## Array_of_AssociatedKey {#array-of-associatedkey} +## Array_of_AssociatedKey An array of [AssociatedKeys](#associatedkey). -## Array_of_BlockProof {#array-of-blockproof} +## Array_of_BlockProof An array of [`BlockProofs`](#blockproof). -## Array_of_EntityVersionAndHash {#array-of-entityversionandhash} +## Array_of_EntityVersionAndHash An array of [EntityVersionAndHashes](#entityversionandhash). -## Array_of_EraReward {#array-of-erareward} +## Array_of_EraReward An array of [EraRewards](#erareward). -## Array_of_MessageTopic {#array-of-messagetopic} +## Array_of_MessageTopic An array of [MessageTopics](#messagetopic). -## Array_of_NamedEntryPoint {#array-of-namedentrypoint} +## Array_of_NamedEntryPoint An array of [named entry points](#namedentrypoint). -## Array_of_NamedKey {#array-of-namedkey} - -An array of [NamedKeys](#namedkey). - -## Array_of_NamedUserGroup {#array-of-namedusergroup} +## Array_of_NamedUserGroup An array of [NamedUserGroups](#namedusergroup). -## Array_of_PublicKeyAndBid {#array-of-publickeyandbid} +## Array_of_PublicKeyAndBid An array of [bids associated with given public keys](#publickeyandbid). -## Array_of_PublicKeyAndDelegator {#array-of-publickeyanddelegator} +## Array_of_PublicKeyAndDelegator An array consisting of [PublicKeyAndDelegators](#publickeyanddelegator). -## Array_of_ValidatorWeight {#array-of-validatorweight} +## Array_of_ValidatorWeight An array of [`ValidatorWeights`](#validatorweight). -## AssociatedKey {#associatedkey} +## AssociatedKey A key granted limited permissions to an Account, for purposes such as multisig. @@ -140,17 +142,13 @@ Required Parameters: * [`weight`](#weight) -## AssociatedKeys {#associatedkeys} - -A [collection of weighted public keys](#array-of-associatedkey) (represented as account hashes) associated with an account. - -## AuctionState {#auctionstate} +## AuctionState Data structure summarizing auction contract data. Required Parameters: -* [`bids`](#jsonbids) All bids contained within a vector. +* [`bids`](#array_of_publickeyandbid) All bids contained within a vector. * `block_height` Block height. @@ -158,13 +156,29 @@ Required Parameters: * [`state_root_hash`](#digest) Global state hash. -## AvailableBlockRange {#availableblockrange} +## AvailableBlockRange + +An unbroken, inclusive range of blocks. + +Required Parameters: * `low` The inclusive lower bound of the range. * `high` The inclusive upper bound of the range. -## Bid {#bid} +## BalanceHoldWithProof + +Hold amount at a given block time. + +Required Parameters: + +* [`amount`](#u512) The amount in the hold. + +* `proof` A string proof that the given value is present in the Merkle trie. + +* [`time`](#blocktime) The block time at which the hold was created. + +## Bid An entry in the validator map. @@ -182,11 +196,11 @@ Required Parameters: * [`validator_public_key`](#publickey) Validator's public key. -Additional Parameters: +Optional Parameters: * [`vesting_schedule`](#vestingschedule) Vesting schedule for a genesis validator. `None` if non-genesis validator. -## BidKind {#bidkind} +## BidKind Auction bid variants. @@ -198,7 +212,11 @@ One of: * `Delegator` A bid record containing only delegator data. -## Block {#block} +* `Bridge` A bridge record pointing to a new `ValidatorBid` after the public key was changed. + +* `Credit` Credited amount. + +## Block A block after execution. @@ -208,52 +226,44 @@ One of: * [`Version2`](#blockv2) -## BlockBodyV1 {#blockbodyv1} +## BlockBodyV1 The body portion of a block prior to Casper 2.0. Required Parameters: -* [`deploy_hashes`](#deployhash) +* [`deploy_hashes`](#deployhash) The deploy hashes of the non-transfer deploys within the block. -* [`proposer`](#publickey) +* [`proposer`](#publickey) The public key of the validator that proposed the block. -* [`transfer_hashes`](#deployhash) +* [`transfer_hashes`](#deployhash) The deploy hashes of the transfers within the block. -## BlockBodyV2 {#blockbodyv2} +## BlockBodyV2 The body portion of a block. Required Parameters: -* [`auction`](#transactionhash) The hashes of the auction transactions within the block. - -* [`install_upgrade`](#transactionhash) The hashes of the installer/upgrader transactions within the block. - -* [`mint`](#transactionhash) The hashes of the mint transactions within the block. - -* [`proposer`](#publickey) +* [`rewarded_signatures`](#rewardedsignatures) List of identifiers for finality signatures for a particular past block. -* [`rewarded_signatures`](#rewardedsignatures) +* [`transactions`](#transactionhash) Map of transactions mapping categories to a list of transaction hashes. -* [`standard`](#transactionhash) The hashes of all other transactions within the block. - -## BlockHash {#blockhash} +## BlockHash A cryptographic hash identifying a `Block`. -## BlockHeader {#blockheader} +## BlockHeader The versioned header portion of a block. It encapsulates different variants of the `BlockHeader` struct. One of: -* [`Version1`](#blockheaderv1) +* [`Version1`](#blockheaderv1) The legacy, initial version of the header portion of a block. -* [`Version2`](#blockheaderv2) +* [`Version2`](#blockheaderv2) The version 2 of the header portion of a block. -## BlockHeaderV1 {#blockheaderv1} +## BlockHeaderV1 The header portion of a block prior to Casper 2.0. @@ -277,39 +287,45 @@ Required Parameters: * [`timestamp`](#timestamp) -Additional Parameters: +Optional Parameters: * [`era_end`](#eraendv1) -## BlockHeaderV2 {#blockheaderv1} +## BlockHeaderV2 The header portion of a block. Required Parameters: -* [`accumulated_seed`](#digest) +* [`accumulated_seed`](#digest) A seed needed for initializing a future era. -* [`body_hash`](#digest) +* [`body_hash`](#digest) The hash of the block's body. + +* `current_gas_price` The gas price of the era. * [`era_id`](#eraid) * `height` The height of this block. -* [`parent_hash`](#blockhash) +* [`parent_hash`](#blockhash) The parent block's hash. -* [`protocol_version`](#protocolversion) +* [`proposer`](#publickey) The public key of the validator which proposed the block. + +* [`protocol_version`](#protocolversion) The protocol version of the network from when this block was created. * `random_bit` A random bit needed for initializing a future era. -* [`state_root_hash`](#digest) +* [`state_root_hash`](#digest) The root hash of global state after the deploys in this block have been executed. -* [`timestamp`](#timestamp) +* [`timestamp`](#timestamp) The timestamp from when the block was proposed. -Additional Parameters: +Optional Parameters: + +* [`era_end`](#eraendv2) The `EraEnd` of a block if it is a switch block. -* [`era_end`](#eraendv2) +* [`last_switch_block_hash`](#blockhash) The most recent switch block hash. -## BlockIdentifier {#blockidentifier} +## BlockIdentifier Identifier for possible ways to retrieve a Block. @@ -317,7 +333,7 @@ Identifier for possible ways to retrieve a Block. * `Height` Identify and retrieve the Block with its height. -## BlockProof {#blockproof} +## BlockProof A validator's public key paired with a corresponding signature of a given block hash. @@ -327,15 +343,17 @@ Required Parameters: * [`signature`](#signature) -## BlockSynchronizerStatus {#blocksynchronizerstatus} +## BlockSynchronizerStatus The status of the block synchronizer. +Optional Parameters: + * [`Historical`](#blocksyncstatus) The status of syncing a historical block, if any. * [`Forward`](#blocksyncstatus) The status of syncing a forward block, if any. -## BlockSyncStatus {#blocksyncstatus} +## BlockSyncStatus The status of syncing an individual block. @@ -343,45 +361,57 @@ Required Parameters: * `acquisition_state` The state of acquisition of the data associated with the block as a string. -* [`block_hash`](#blockhash) +* [`block_hash`](#blockhash) The block hash. -Additional Parameters: +Optional Parameters: * `block_height` The height of the block, if known. -## BlockTime {#blocktime} +## BlockTime A newtype wrapping a `u64`, which represents the block time. -## BlockV1 {#blockv1} +## BlockV1 A block after execution with the resulting global state root hash prior to Casper 2.0. This is the core component of the Casper linear blockchain. Required Parameters: -* [`body`](#blockbodyv1) +* [`body`](#blockbodyv1) The body portion of the block. -* [`hash`](#blockhash) +* [`hash`](#blockhash) The block hash identifying this block. -* [`header`](#blockheaderv1) +* [`header`](#blockheaderv1) The header portion of the block. -## BlockV2 {#blockv2} +## BlockV2 A block after execution, with the resulting global state root hash. This is the core component of the Casper linear blockchain. Required Parameters: -* [`body`](#blockbodyv2) +* [`body`](#blockbodyv2) The body portion of the block. -* [`hash`](#blockhash) +* [`hash`](#blockhash) The block hash identifying this block. -* [`header`](#blockheaderv2) +* [`header`](#blockheaderv2) The header portion of the block. -## Bytes {#bytes} +## Bridge + +A bridge record pointing to a new `ValidatorBid` after the public key was changed. + +Required Parameters: + +* [`era_id`](#eraid) Era when bridge record was created. + +* [`old_validator_public_key`](#publickey) Previous validator public key associated with the bid. + +* [`new_validator_public_key`](#publickey) New validator public key associated with the bid. + +## Bytes Hex-encoded bytes. -## ByteCode {#bytecode} +## ByteCode A container for a contract's Wasm bytes. @@ -391,11 +421,11 @@ Required Parameters: * [`kind`](#ByteCodeKind) -## ByteCodeHash {#bytecodehash} +## ByteCodeHash -The hex-encoded address of a smart contract [`AddressableEntity`](#addressableentity) +The hex-encoded address of a smart contract [`AddressableEntity`](#addressableentity). -## ByteCodeKind {#bytecodekind} +## ByteCodeKind The type of byte code. @@ -405,7 +435,7 @@ One of: * `V1CasperWasm` Byte code to be executed with the version 1 Casper execution engine. -## BytesreprError {#bytesreprerror} +## BytesreprError Serialization and deserialization errors. @@ -421,37 +451,41 @@ Serialization and deserialization errors. * `ExceededRecursionDepth` Exceeded a recursion depth limit. -## ChainspecRawBytes {#chainspecrawbytes} +## ChainspecRawBytes The raw bytes of the chainspec.toml, genesis accounts.toml, and global_state.toml files. -* `chainspec_bytes` Hex-encoded raw bytes of the current chainspec.toml file. +Required Parameters: + +* [`chainspec_bytes`](#bytes) Hex-encoded raw bytes of the current chainspec.toml file. -* `maybe_genesis_accounts_bytes` Hex-encoded raw bytes of the current genesis accounts.toml file. +Optional Parameters: -* `maybe_global_state_bytes` Hex-encoded raw bytes of the current global_state.toml file. +* [`maybe_genesis_accounts_bytes`](#bytes) Hex-encoded raw bytes of the current genesis accounts.toml file. -## Contract {#contract} +* [`maybe_global_state_bytes`](#bytes) Hex-encoded raw bytes of the current global_state.toml file. + +## Contract A contract struct that can be serialized as a JSON object. Required Parameters: -[`contract_package_hash`](#contractpackagehash) +* [`contract_package_hash`](#contractpackagehash) -[`contract_wasm_hash`](#contractwasmhash) +* [`contract_wasm_hash`](#contractwasmhash) -[`entry_points`](#entrypoint) +* [`entry_points`](#entrypoint) -[`named_keys`](#namedkey) +* [`named_keys`](#namedkey) -`protocol_version` +* [`protocol_version`](#protocolversion) -## ContractHash {#contracthash} +## ContractHash The hash address of the contract. -## ContractPackage {#contractpackge} +## ContractPackage Contract definition, metadata and security container. @@ -467,11 +501,11 @@ Required Parameters: * [`lock_status`](#contractpackagestatus) -## ContractPackageHash {#contractpackagehash} +## ContractPackageHash The hash address of the contract package. -## ContractPackageStatus {#contractpackagestatus} +## ContractPackageStatus An enum to determine the lock status of the contract package. @@ -481,7 +515,7 @@ One of: * `Unlocked` The package is unlocked and can be versioned. -## ContractVersion {#contractversion} +## ContractVersion The version of the contract. @@ -493,11 +527,11 @@ Required Parameters: * `protocol_version_major` -## ContractVersionKey {#contractversionkey} +## ContractVersionKey Major element of `ProtocolVersion` combined with `ContractVersion`. -## ContractWasm {#contractwasm} +## ContractWasm A container for a contract's Wasm bytes. @@ -505,11 +539,11 @@ Required Parameter: * [`bytes`](#bytes) -## ContractWasmHash {#contractwasmhash} +## ContractWasmHash The hash address of the contract Wasm. -## Delegator {#delegator} +## Delegator Represents a party delegating their stake to a validator (or "delegatee"). @@ -527,7 +561,7 @@ Additional Parameters: * [`vesting_schedule`](#vestingschedule) -## Deploy {#deploy} +## Deploy A Deploy; an item containing a smart contract along with the requester's signature(s). @@ -539,25 +573,15 @@ Required properties: * [`header`](#deployheader) -* [`payment`](#executabledeployitem) +* [`payment`](#executabledeployitem-executabledeployitem) -* [`sessions`](#executabledeployitem) +* [`session`](#executabledeployitem-executabledeployitem) -## DeployApproval {#deployapproval} - -A struct containing a signature of a deploy hash and the public key of the signer. - -Required parameters: - -* [`signature`](#signature) - -* [`signer`](#publickey) - -## DeployHash {#deployhash} +## DeployHash Hex-encoded Deploy hash. -## DeployHeader {#deployheader} +## DeployHeader The header portion of a Deploy. @@ -577,7 +601,7 @@ Required Parameters: * [`ttl`](#timediff) -## DeployInfo {#deployinfo} +## DeployInfo Information relating to the given Deploy. @@ -593,7 +617,7 @@ Required Parameters: * [`transfers`](#transferaddr) Transfers performed by the Deploy. -## DictionaryIdentifier {#dictionaryidentifier} +## DictionaryIdentifier Options for dictionary item lookups. @@ -601,79 +625,117 @@ Options for dictionary item lookups. Required Parameters: - `key` The Account key as a formatted string whose named keys contain dictionary_name. + * `key` The Account key as a formatted string whose named keys contain dictionary_name. - `dictionary_name` The named key under which the dictionary seed URef is stored. + * `dictionary_name` The named key under which the dictionary seed URef is stored. - `dictionary_item_key` The dictionary item key formatted as a string. + * `dictionary_item_key` The dictionary item key formatted as a string. * `ContractNamedKey` Lookup a dictionary item via a Contract's named keys. - `key` The contract key as a formatted string whose named keys contains dictionary_name. + Required Parameters: + + * `key` The contract key as a formatted string whose named keys contains dictionary_name. + + * `dictionary_name` The named key under which the dictionary seed URef is stored. + + * `dictionary_item_key` The dictionary item key formatted as a string. + +* `EntityNamedKey` + + Required Parameters: + + * `key` The entity address formatted as a string. - `dictionary_name` The named key under which the dictionary seed URef is stored. + * `dictionary_name` The named key under which the dictionary seed URef is stored. - `dictionary_item_key` The dictionary item key formatted as a string. + * `dictionary_item_key` The dictionary item key formatted as a string. * `URef` Lookup a dictionary item via its seed URef. - `seed_uref` The dictionary's seed URef. + Required Parameters: + + * `seed_uref` The dictionary's seed URef. - `dictionary_item_key` The dictionary item key formatted as a string. + * `dictionary_item_key` The dictionary item key formatted as a string. * `Dictionary` Lookup a dictionary item via its unique key. -## Digest {#digest} +## Digest Hex-encoded hash digest. -## DisabledVersions {#disabledversions} +## Effects + +A log of all [transforms](#tranform) produced during execution. + +## EntityActionThresholds + +Thresholds that have to be met when executing an action of a certain type. Required Parameters: -* `contract_version` +* [`deployment`](#entityassociatedkeyweight) Threshold for deploy execution. -* `protocol_version_major` +* [`key_management`](#entityassociatedkeyweight) Threshold for managing account keys. -## Effects {#effects} +* [`upgrade_management`](#entityassociatedkeyweight) Threshold for upgrading contracts. -A log of all [transforms](#tranform) produced during execution. +## EntityAddr + +The address for an AddressableEntity which contains the 32 bytes and tagging information. + +Any of: + +* The address for a system entity account or contract. -## EntityIdentifier {#entityidentifier} +* The address of an entity that corresponds to an Account. + +* The address of an entity that corresponds to a user (non-system) smart contract. + +## EntityAssociatedKeys + +A collection of weighted public keys (represented as account hashes) associated with an account. See [Array_of_AssociatedKey](#array_of_associatedkey). + +## EntityAssociatedKeyWeight + +The weight associated with public keys in an entity's associated keys. + +## EntityIdentifier Identifier of an addressable entity. -* [`PublicKey`](#publickey) +One of: -* [`AccountHash`](#accounthash) +* [`PublicKey`](#publickey-publickey) -* [`EntityHashForAccount`](#addressableentityhash) +* [`AccountHash`](#accounthash) -* [`EntityHashForContract`](#addressableentityhash) +* [`EntityAddr`](#entityaddr) -## EntityKind {#entitykind} +## EntityKind The type of [`Package`](#package). One of: -* [`System`](#systementitytype) +* [`System`](#systementitytype) Package associated with a native contract implementation. -* [`Account`](#accounthash) +* [`Account`](#accounthash) Package associated with an Account hash. -* `SmartContract` Packages associated with Wasm stored on chain. +* [`SmartContract`](#transactionruntime) Packages associated with Wasm stored on chain. -## EntityOrAccount {#entity-or-account} +## EntityOrAccount An addressable entity or a legacy account. One of: -* [`AddressableEntity`](#addressablentity) +* [`AddressableEntity`](#addressablentity) An addressable entity. -* [`Account`](#account) +* [`Account`](#account) A legacy account. -## EntityVersionAndHash {#entityversionandhash} +## EntityVersionAndHash An entity version associated with the given hash. @@ -683,17 +745,17 @@ Required Parameters: * [`entity_version_key`](#entityversionkey) -## EntityVersionKey {#entityversionkey} +## EntityVersionKey Major element of `ProtocolVersion` combined with `EntityVersion`. Required Parameters: -* `entity_version` +* `entity_version` Automatically incremented value for a contract version within a major `ProtocolVersion`. -* `protocol_version_major` +* `protocol_version_major` Major element of `ProtocolVersion` with which a `ContractVersion` is compatible. -## EntryPoint {#entrypoint} +## EntryPoint Metadata describing a callable entry point and its return value, if any. All required parameters should be declared, whereas all non-required parameters should not be declared. Non-required parameters should not be confused with optional parameters. @@ -709,199 +771,195 @@ Required Parameters: * [`ret`](#cltype) -## EntryPointAccess {#entrypointaccess} +## EntryPoint2 -Enum describing the possible access control options for a contract entry point. +Type signature of a method. Order of arguments matters since they can be referenced by index as well as their name. -* `Public` A public entry point is callable by any caller. +Required Parameters: -* [`Groups`](#group) Only callers from the authorized, listed groups may call this entry point. Note: If this list is empty then this entry point is not callable from outside the contract. +* [`access`](#entrypointaccess) -## EntryPointType {#entrypointype} +* [`args`](#parameter) -Context of an entry point execution. +* [`entry_point_payment`](#entrypointpayment) -* `Session` Runs as session code in the context of the caller. Deprecated and retained to allow read back of legacy stored session. +* [`entry_point_type`](#entrypointtype) -* `AddressableEntity` Runs within the called entity's context. +* `name` The string name of the entrypoint. -* `Factory` This entry point is intended to extract a subset of bytecode. Runs within the called entity's context. +* [`ret`](#cltype) -## EraEndV1 {#eraendv1} +## EntryPointAccess -Information related to the end of an era and validator weights for the following era prior to Casper 2.0. +Enum describing the possible access control options for a contract entry point. -Required Parameters: +One of: -* [`era_report`](#erareport_for_publickey) +* `Public` A public entry point is callable by any caller. -* [`next_era_validator_weights`](#array_of_validatorweight) +* [`Groups`](#group) Only callers from the authorized, listed groups may call this entry point. Note: If this list is empty then this entry point is not callable from outside the contract. -## EraEndV2 {#eraendv2} +* `Template` A string type that can't be accessed directly but is kept in the derived Wasm bytes. -Information related to the end of an era and validator weights for the following era. +## EntryPointPayment -Required Parameters: +An enum specifying who pays for the invocation and execution of the entrypoint. -* [`equivocators`](#publickey) +One of: -* [`inactive_validators`](#publickey) +* `Caller` The caller must cover the cost. -* [`next_era_validator_weights`](#array-of-validatorweight) +* `SelfOnly` The current execution will cover the cost to execute self but not the cost of any subsequently invoked contracts. -* [`rewards`](#U512) +* `SelfOnward` The current execution will cover the cost to execute self and the cost of any subsequently invoked contracts. -## EraID {#eraid} +## EntryPointType -Era ID newtype. +Context of an entry point execution. The most significant bit represents the version. For example, `0b0` represents session and contract entry points up to version 2.0. And, `0b1` is for versions 2.x and later (i.e. installer and utility entry points). -## EraIdentifier {#eraidentifier} +One of: -Identifier for an era. +* `Caller` Runs using the calling entity's context. In v1.x, this was used for both session code that ran using the originating account's context and stored session code that ran in the caller's context. In v2.x, the renamed Caller variant is exclusively used for Wasm running using the initiating account entity's context. Previously installed 1.x stored session code should continue to work as the binary value matches, but we no longer allow such logic to be upgraded, nor do we allow new stored session code to be installed. -One of: +* `Called` Runs within the called entity's context. -* [`Era`](#eraid) +* `Factory` This entry point is intended to extract a subset of bytecode. Runs within the called entity's context. -* [`Block`](#blockidentifier) +## EntryPointValue -## EraInfo {#erainfo} +The encaspulated representation of entrypoints. -Auction metadata. Intended to be recorded at each era. +One of: -Required Parameters: +* [`V1CasperVm`](#entrypoint2) Entrypoints to be executed against the V1 Casper VM. -* [`seigniorage_allocation`](#seigniorageallocation-seigniorageallocation) Information about a seigniorage allocation. +* [`V2CasperVm`](#entrypointv2) Entrypoints to be executed against the V2 Casper VM. -## EraReport_for_PublicKey {#erareport-for-publickey} +## EntryPointV2 -Equivocation, reward and validator inactivity information. +The entry point for the V2 Casper VM. Required Parameters: -* [`equivocators`](#publickey) - -* [`rewards`](#array_of_erareward) +* `flags` The flags as a uint32 integer. -* [`inactive_validators`](#publickey) +* `function_index` The selector as a uint32 integer. -## EraReward {#erareward} +## EraEndV1 -A validator's public key paired with a measure of the value of its contribution to consensus, as a fraction of the configured maximum block reward. +Information related to the end of an era and validator weights for the following era prior to Casper 2.0. Required Parameters: -* `amount` +* [`era_report`](#erareport_for_publickey) -* [`validator`](#publickey) +* [`next_era_validator_weights`](#array_of_validatorweight) -## EraSummary {#erasummary} +## EraEndV2 -The summary of an era. +Information related to the end of an era and validator weights for the following era. Required Parameters: -* [`block_hash`](#blockhash) The Block hash. +* [`equivocators`](#publickey) The set of equivocators. -* [`era_id`](#eraid) The era id. +* [`inactive_validators`](#publickey) Validators that haven't produced any units during the era. -* [`merkle_proof`](#merkle-proof) The merkle proof. +* `next_era_gas_price` The gas price for the next era as a `uint8` integer. Minimum 0.0 motes. -* [`state_root_hash`](#digest) Hex-encoded hash of the state root. +* [`next_era_validator_weights`](#array-of-validatorweight) The validators for the upcoming era and their respective weights. -* [`stored_value`](#storedvalue) The StoredValue containing era information. - -## ExecutableDeployItem {#executabledeployitem} +* [`rewards`](#U512) The rewards distributed to the validators. -Represents possible variants of an executable Deploy. +## EraID -### `ModuleBytes` {#modulebytes} +Era ID newtype. -Executable specified as raw bytes that represent Wasm code and an instance of `RuntimeArgs`. +## EraIdentifier -Required Parameters: +Identifier for an era. -* `module_bytes` Hex-encoded raw Wasm bytes. There are some special cases around passing `module_bytes` for payment code. +One of: -Additional Parameters: +* [`Era`](#eraid) -* [`args`](#runtimeargs) Runtime arguments. +* [`Block`](#blockidentifier) -### `StoredContractByHash` {#storedcontractbyhash} +## EraInfo -Stored contract referenced by its `ContractHash`, entry point and an instance of `RuntimeArgs`. +Auction metadata. Intended to be recorded at each era. Required Parameters: -* [`args`](#runtimeargs) Runtime arguments. - -* `entry_point` The name of an entry point. +* [`seigniorage_allocation`](#seigniorageallocation) Information about a seigniorage allocation. -* `hash` A hex-encoded hash. +## EraReport_for_PublicKey -### `StoredContractByName` {#storedcontractbyname} - -Stored contract referenced by a named key existing in the signer's Account context, entry point and an instance of `RuntimeArgs`. +Equivocation, reward and validator inactivity information. Required Parameters: -* [`args`](#runtimeargs) Runtime arguments. +* [`equivocators`](#publickey) The set of equivocators. -* `entry_point` The name of an entry point. +* [`rewards`](#array_of_erareward) Rewards for finalization of earlier blocks. -* `name` A named key. +* [`inactive_validators`](#publickey) Validators that haven't produced any unit during the era. -### `StoredVersionContractByHash` {#storedversioncontractbyhash} +## EraReward -Stored versioned contract referenced by its `ContractPackageHash`, entry point and an instance of `RuntimeArgs`. +A validator's public key paired with a measure of the value of its contribution to consensus, as a fraction of the configured maximum block reward. Required Parameters: -* [`args`](#runtimeargs) Runtime arguments. +* `amount` The reward amount. -* `entry_point` The name of an entry point. +* [`validator`](#publickey) The validator's public key. -* `hash` A hex-encoded hash. +## EraSummary -Additional Parameters: - -* `version` An optional version of the contract to call. It will default to the highest enabled version if no value is specified. +The summary of an era. -### `StoredVersionContractByName` {#storedversioncontractbyname} +Required Parameters: -Stored versioned contract referenced by a named key existing in the signer's Account context, entry point and an instance of `RuntimeArgs`. +* [`block_hash`](#blockhash) The Block hash. -Required Parameters: +* [`era_id`](#eraid) The era id. -* [`args`](#runtimeargs) Runtime arguments. +* [`merkle_proof`](#merkle-proof) The merkle proof. -* `entry_point` The name of an entry point. +* [`state_root_hash`](#digest) Hex-encoded hash of the state root. -* `name` A named key. +* [`stored_value`](#storedvalue) The StoredValue containing era information. -Additional Parameters: +## ExecutableDeployItem -* `version` An optional version of the contract to call. It will default to the highest enabled version if no value is specified. +Represents possible variants of an executable Deploy. -### `Transfer` {#transfer} +## ExecutionInfo -A native transfer which does not contain or reference a Wasm code. +The block hash and height in which a given deploy was executed, along with the execution result if known. Required Parameters: -* [`args`](#runtimeargs) +* [`block_hash`](#blockhash) The hash of the block in which the deploy was executed. + +* `block_height` The height of the block in which the deploy was executed. + +Optional Parameters: -## ExecutionEffect {#executioneffect} +* [`execution_result`](#executionresult) The execution result if known. + +## ExecutionEffect The journal of execution transforms from a single Deploy. Required Parameters: -* [`operations`](#oepration) +* [`operations`](#operation) * [`transforms`](#transformentry) -## ExecutionResult {#executionresult} +## ExecutionResult The versioned result of executing a single Deploy. @@ -911,7 +969,7 @@ One of: * [`Version2`](#executionresultv2) Version 2 of execution result type. -## ExecutionResultV1 {#executionresultV1} +## ExecutionResultV1 The result of executing a single deploy prior to Casper 2.0. @@ -939,39 +997,37 @@ One of: [`cost`](#u512) -## ExecutionResultV2 {#executionresultv2} - -The result of executing a single deploy. +## ExecutionResultV2 -One of: +The result of executing a single transaction. -* `Failure` The result of a failed execution. +Required Parameters: - Required Parameters: +* [`consumed`](#gas) How much gas was consumed executing this transaction. - [`effects`](#effects) +* [`cost`](#u512) How much was paid for this transaction. - [`transfers`](#transferaddr) +* [`effects`](#effects) The effects of executing this transaction. - [`cost`](#u512) +* [`initiator`](#initiatoraddr) Who initiated this transaction. - `error_message` The error message associated with executing the deploy. +* [`limit`](#gas) The maximum allowed gas limit for this transaction. -* `Success` The result of a successful execution. +* [`payment`](#paymentinfo) Breakdown of payments made to cover the cost. - Required Parameters: +* `size_estimate` The size estimate of the transaction - [`effects`](#effects) +* [`transfers`](#transfer) A record of transfers performed while executing this transaction. - [`transfers`](#transferaddr) +Optional Parameters: - [`cost`](#u512) +* `error_message` If there is no error message, this execution was processed successfully. If there is an error message, this execution failed to fully process for the stated reason. -## FinalizedApprovals {#finalizedapprovals} +## Gas -A boolean value that determines whether to return the deploy with the finalized approvals substituted. If `false` or omitted, returns the deploy with the approvals that were originally received by the node. +The `Gas` struct represents a `U512` amount of gas. -## GlobalStateIdentifier {#globalstateidentifier} +## GlobalStateIdentifier Identifier for possible ways to query global state. @@ -981,21 +1037,13 @@ Identifier for possible ways to query global state. * [`StateRootHash`](#digest) Query using the state root hash. -## Group {#group} +## Group A (labelled) "user group". Each entry point of a versioned contract may be associated with one or more user groups which are allowed to call it. -### Groups {#groups} - -Required Parameters: - -* `group` - -* [`keys`](#uref) +## InitiatorAddr -## InitiatorAddr {#initiatoraddr} - -The address of the initiator of a TransactionV1. +The address of the initiator of a transaction Contains one of: @@ -1003,131 +1051,17 @@ Contains one of: * [`accounthash`](#accounthash) The account hash derived from the public key of the initiator. -* [`entityaddr`](#entityaddr) The hex-encoded entity address of the initiator. - -## JsonBid {#jsonbid} - -An entry in a founding validator map representing a bid. - -Required Parameters: - -* [`bonding_purse`](#uref) The purse that was used for bonding. - -* `delegation_rate` The delegation rate. - -* [`delegators`](#jsondelegator) The delegators. - -* `inactive` Is this an inactive validator. - -* [`staked_amount`](#u512) The amount of tokens staked by a validator (not including delegators). - -## JsonBids {#jsonbids} - -A Json representation of a single bid. - -Required Parameters: - -* [`bid`](#jsonbid) - -* [`public_key`](#publickey) - -## JsonBlock {#jsonblock} - -A JSON-friendly representation of `Block`. - -Required Parameters: - -* [`body`](#jsonblockbody) JSON-friendly Block body. - -* [`hash`](#blockhash) BlockHash. - -* [`header`](#jsonblockheader) JSON-friendly Block header. - -* [`proofs`](#jsonproof) JSON-friendly list of proofs for this Block. - -## JsonBlockBody {#jsonblockbody} - -A JSON-friendly representation of `Body`. - -Required Parameters: - -* [`deploy_hashes`](#deployhash) - -* [`proposer`](#publickey) - -* [`transfer_hashes`](#deployhash) - -## JsonBlockHeader {#jsonblockheader} - -JSON representation of a Block header. - -* [`accumulated_seed`](#digest) Accumulated seed. - -* [`body_hash`](#digest) The body hash. - -* [`era_id`](#eraid) The Block era id. - -* `height` The Block height. - -* [`parent_hash`](#blockhash) The parent hash. - -* [`protocol_version`](#protocolversion) The protocol version. - -* `random_bit` Randomness bit. - -* [`state_root_hash`](#digest) The state root hash. - -* [`timestamp`](#timestamp) The Block timestamp. - -Additional Parameters: - -* [`era_end`](#jsoneraend) The era end. - -## JsonBlockWithSignatures {#jsonblockwithsignatures} +## JsonBlockWithSignatures A JSON-friendly representation of a block and the signatures for that block. Required Parameters: -* [`block`](#block) +* [`block`](#block) The block. -* [`proofs`](#array-of-blockproof) +* [`proofs`](#array-of-blockproof) The proofs of the block, i.e. a collection of validators' signatures of the block hash. -## JsonDelegator {#jsondelegator} - -A delegator associated with the given validator. - -Required Parameters: - -* [`bonding_purse`](#uref) - -* [`delegatee`](#publickey) - -* [`public_key`](#publickey) - -* [`staked_amount`](#u512) - -## JsonEraEnd {#jsoneraend} - -Required Parameters: - -* [`era_report](#jsonerareport) - -* [`next_era_validator_weight`](#validatorweight) - -## JsonEraReport {#jsonerareport} - -Equivocation and reward information to be included in the terminal Block. - -Required Parameters: - -* [`equivocators`](#publickey) - -* [`inactive_validators`](#publickey) - -* [`rewards`](#reward) - -## JsonEraValidators {#jsoneravalidators} +## JsonEraValidators The validators for the given era. @@ -1137,25 +1071,7 @@ Required Parameters: * [`validator_weights`](#jsonvalidatorsweights) -## JsonExecutionResult {#jsonexecutionresult} - -The execution result of a single Deploy. - -* [`block_hash`](#blockhash) - -* [`result`](#executionresult) - -## JsonProof {#jsonproof} - -A JSON-friendly representation of a proof, i.e. a Block's finality signature. - -Required Parameters: - -* [`public_key`](#publickey) - -* [`signature`](#signature) - -## JsonValidatorChanges {#jsonvalidatorchanges} +## JsonValidatorChanges The changes in a validator's status. @@ -1165,7 +1081,7 @@ Required Parameters: * [`status_changes`](#jsonvalidatorstatuschange) The set of changes to the validator's status. -## JsonValidatorStatusChange {#jsonvalidatorstatuschange} +## JsonValidatorStatusChange A single change to a validator's status in the given era. @@ -1175,7 +1091,7 @@ Required Parameters: * [`validator_change`](#validatorchange) The change in validator status. -## JsonValidatorsWeights {#jsonvalidatorweights} +## JsonValidatorsWeights A validator's weight. @@ -1185,19 +1101,15 @@ Required Parameters: * [`weight`](#u512) -## Key {#key} +## Key The key as a formatted string, under which data can be stored in global state. -## Merkle_Proof {#merkle-proof} - -A Merkle proof is a construction created using a Merkle trie that allows verification of the associated hashes. - -## MessageChecksum {#messagechecksum} +## MessageChecksum Message checksum as a formatted string. -## MessageTopic {#messagetopic} +## MessageTopic A topic for contract-level messages. @@ -1205,9 +1117,9 @@ Required Parameters: * `topic_name` A string used to identify the message topic. -* [`topic_name_hash`](#topicnamehash) +* [`topic_name_hash`](#topicnamehash) The hash of the name of the message topic. -## MessageTopicSummary {#messagetopicsummary} +## MessageTopicSummary Summary of a message topic that will be stored in global state. @@ -1217,7 +1129,7 @@ Required Parameters: * `message_count` The number of messages in this topic. -## MinimalBlockInfo {#minimalblockinfo} +## MinimalBlockInfo Minimal info of a `Block`. @@ -1229,17 +1141,17 @@ Required Parameters: * [`hash`](#blockhash) -* `height` +* `height` The block height. * [`state_root_hash`](#digest) * [`timestamp`](#timestamp) -## NamedArg {#namedarg} +## NamedArg Named arguments to a contract. -## NamedEntryPoint {#namedentrypoint} +## NamedEntryPoint A named [entry point](#entrypoint). @@ -1249,7 +1161,7 @@ Required Parameters: * `name` A string identifying the entry point. -## NamedKey {#namedkey} +## NamedKey A named key. @@ -1259,19 +1171,21 @@ Required Parameters: * `name` The name of the entry. -## NamedKeys {#namedkeys} +## NamedKeys A [collection of named keys](#array-of-namedkey). -## NamedKeyValue {#namedkeyvalue} +## NamedKeyValue A `NamedKey` value. +Required Parameters: + * `name` The name of the `Key` encoded as a `CLValue`. * `named_key` The actual `Key` encoded as a `CLValue`. -## NamedUserGroup {#namedusergroup} +## NamedUserGroup A named [`group`](#group). @@ -1281,7 +1195,7 @@ Required Parameters: * [`group_users`](#uref) -## NextUpgrade {#nextupgrade} +## NextUpgrade Information about the next protocol upgrade. @@ -1289,13 +1203,9 @@ Required Parameters: * [`activation_point`](#activationpoint) -* `protocol_version` - -## NewValidator {#newvalidator} - -The public key for the new validator in a redelegation using [UnbondingPurse](#unbondingpurse). +* [`protocol_version`](#protocolversion) -## Operation {#operation} +## Operation An operation performed while executing a Deploy. @@ -1305,7 +1215,7 @@ Required Parameters: * [`kind`](#opkind) -## OpKind {#opkind} +## OpKind The type of operation performed while executing a Deploy. @@ -1321,25 +1231,21 @@ One of: * `Prune` A prune operation. -## Package {#package} +## Package Entity definition, metadata and security container. Required Parameters: -* [`access_key`](#uref) - -* [`disabled_versions`](#EntityVersionKey) - -* [`groups`](#array_of_namedusergroup) +* [`disabled_versions`](#EntityVersionKey) Collection of disabled entity versions. The runtime will not permit disabled entity versions to be executed. -* [`lock_status`](#packagestatus) +* [`groups`](#array_of_namedusergroup) Mapping maintaining the set of URefs associated with each user group, used to control access to methods in a particular version of the entity. A method is callable by any context which knows any of the URefs associated with the method's user group. -* [`package_kind`](#packagekind) +* [`lock_status`](#packagestatus) A flag that determines whether a entity is locked. -* [`versions`](#array-of-entityversionandhash) +* [`versions`](#array-of-entityversionandhash) All versions (enabled & disabled). -## Parameter {#parameter} +## Parameter Parameter to an entry point. @@ -1349,45 +1255,43 @@ Required Parameters: * `name` -## PackageHash {#packagehash} +## PackageHash The hex-encoded address of a package associated with an [`AddressableEntity`](#addressableentity). -## PackageKind {#packagekind} +## PackageStatus -The type of `Package`. +An enum to determine the lock status of the package. One of: -* `System` Package associated with a native contract implementation. - -* `Account` Package associated with an Account hash. +* `Locked` The package is locked and cannot be versioned. -* `SmartContract` Packages associated with Wasm stored on chain. +* `Unlocked` The package is unlocked and can be versioned. -## PackageStatus {#packagestatus} +## PaymentInfo -An enum to determine the lock status of the package. +Breakdown of payments made to cover the cost. -One of: +Required Parameters: -* `Locked` The package is locked and cannot be versioned. +* `source` Source purse used for payment of the transaction. -* `Unlocked` The package is unlocked and can be versioned. +## PeerEntry -## Peer {#peers} +Node peer entry. -Map of peer IDs to network addresses. +Required Parameters: -## PeerEntry {#peerentry} +* `address` Node address. -Required Parameters: +* `node_id` Node ID. -* `address` +## Peers -* `node_id` +Map of peer IDs to network addresses. -## PricingMode {#pricingmode} +## PricingMode The pricing mode of a transaction. @@ -1395,19 +1299,19 @@ One of: * `Classic` The original payment model, where the creator of the transaction specifies how much they will pay, at what gas price. -* `Fixed` The cost of the transaction is determined by the cost table, per the transaction kind. +* `Fixed` The cost of the transaction is determined by the cost table, per the transaction category. * `Reserved` The payment for this transaction was previously reserved (Not currently implemented). -## ProtocolVersion {#protocolversion} +## ProtocolVersion Casper Platform protocol version. -## PublicKey {#publickey} +## PublicKey Hex-encoded cryptographic public key, including the algorithm tag prefix. -## PublicKeyAndBid {#publickeyandbid} +## PublicKeyAndBid A bid associated with the given public key. @@ -1417,7 +1321,7 @@ Required Parameters: * [`public_key`](#publickey) -## PublicKeyAndDelegator {#publickeyanddelegator} +## PublicKeyAndDelegator A delegator associated with the given validator. @@ -1427,49 +1331,41 @@ Required Parameters: * [`delegator`](#delegator) -## PurseIdentifier {#purseidentifier} +## PurseIdentifier + +The identifier of a purse. -The identifier to obtain the purse corresponding to a balance query. Valid identifiers include: +One of: * `main_purse_under_public_key` The main purse under a provided [`PublicKey`](./types_chain.md#publickey). * `main_purse_under_account_hash` The main purse under a provided [`AccountHash`](./types_chain.md#accounthash). -* `purse_uref` A specific purse identified by the associated [`URef`](./types_chain.md#uref). - -## ReactorState {#reactorstate} - -The state of the reactor, which will return one of the following: - -* `Initialize` Get all components and reactor state set up on start. - -* `CatchUp` Orient to the network and attempt to catch up to tip. - -* `Upgrading` Running commit upgrade and creating immediate switch block. +* `main_purse_under_entity_addr` The main purse of the account identified by this [`EntityAddr`](#entityaddr). -* `KeepUp` Stay caught up with tip. - -* `Validate` Node is currently caught up and is an active validator. +* `purse_uref` A specific purse identified by the associated [`URef`](./types_chain.md#uref). -* `ShutdownForUpgrade` Node should be shut down for upgrade. +## ReservationKind -## Reward {#reward} +Container for bytes recording location, type and data for a gas reservation. Required Parameters: -* `amount` +* [`receipt`](#digest) -* [`validator`](#publickey) +* [`reservation_data`](#bytes) Hex-encoded bytes. -## RewardedSigantures {#rewardedsignatures} +* `reservation_kind` A `uint8` integer. + +## RewardedSignatures Describes finality signatures that will be rewarded in a block. Consists of a vector of [`SingleBlockRewardedSignatures`](#singleblockrewardedsignatures), each of which describes signatures for a single ancestor block. The first entry represents the signatures for the parent block, the second for the parent of the parent, and so on. -## RuntimeArgs {#runtimeargs} +## RuntimeArgs Represents a collection of arguments passed to a smart contract. -## SeigniorageAllocation {#seigniorageallocation} +## SeigniorageAllocation Information about a seigniorage allocation. @@ -1493,15 +1389,15 @@ One of: [`validator_public_key`](#publickey) Validator's public key. -## Signature {#signature} +## Signature Hex-encoded cryptographic signature, including the algorithm tag prefix. -## SingleBlockRewardedSignatures {#singleblockrewardedsignatures} +## SingleBlockRewardedSignatures List of identifiers for finality signatures for a particular past block. That past block height is equal to `current_height` minus `signature_rewards_max_delay`, the latter being defined in the chainspec. -## StoredValue {#storedvalue} +## StoredValue Representation of a value stored in global state. @@ -1515,11 +1411,11 @@ Representation of a value stored in global state. * [`ContractPackage`](#contractpackage) A contract definition, metadata, and security container. -* [`Transfer`](#transfer) A record of a transfer. +* [`LegacyTransfer`](#transfer) A version 1 (legacy) transfer. * [`DeployInfo`](#deployinfo) A record of a Deploy. -* [`EraInfo`](#erainfo) Auction metadata. +* [`EraInfo`](#erainfo) Information about an era. * [`Bid`](#bid-bid) A bid. @@ -1541,7 +1437,12 @@ Representation of a value stored in global state. * [`NamedKey`](#namedkey) A NamedKey record. -## SystemEntityType {#systementitytype} +* [`Reservation`](#reservationkind) A reservation record. + +* [`EntryPoint`](#entrypoint) An entrypoint record. + + +## SystemEntityType System contract types. @@ -1553,19 +1454,19 @@ System contract types. * `Auction` -## TimeDiff {#timediff} +## TimeDiff Human-readable duration. -## Timestamp {#timestamp} +## Timestamp Timestamp formatted as per RFC 3339. -## TopicNameHash {#topicnamehash} +## TopicNameHash The hash of the name of the [message topic](#messagetopics). -## Transaction {#transaction} +## Transaction A versioned wrapper for a transaction or deploy. @@ -1577,12 +1478,14 @@ or * [`Version1`](#TransactionV1) -## TransactionEntryPoint {#transactionentrypoint} +## TransactionEntryPoint An entry point of a transaction. One of: +* `Call` The standard `call` entry point used in session code. + * `Custom` A non-native, arbitrary entry point. * `Transfer` The `transfer` native entry point, used to reference motes from a source purse to a target purse. @@ -1595,9 +1498,13 @@ One of: * `Undelegate` The `undelegate` native entry point, used to reduce a delegator's stake or remove the delegator if the remaining stake is zero. -* `Redelegate` the `redelegate` native entry point, used to reduce a delegator's stake or remove the delegator if the remaining stake is zero. After the unbonding delay, it will automatically delegate to a new validator. +* `Redelegate` The `redelegate` native entry point, used to reduce a delegator's stake or remove the delegator if the remaining stake is zero. After the unbonding delay, it will automatically delegate to a new validator. + +* `ActivateBid` The `activate_bid` native entry point, used to used to reactivate an inactive bid. -## TransactionHash {#transactionhash} +* `ChangeBidPublicKey` The `change_bid_public_key` native entry point, used to change a bid's public key. + +## TransactionHash A versioned wrapper for a transaction hash or deploy hash. @@ -1605,21 +1512,21 @@ One of: * [`Deploy`](#deployhash) -* [`Version`](#transactionv1hash) +* [`Version1`](#transactionv1hash) -## TransactionInvocationTarget {#transactioninvocationtarget} +## TransactionInvocationTarget The identifier of a `stored` transaction target. One of: -* `InvocableEntity` The hex-encoded entity address identifying the invocable entity. +* `ByHash` The hex-encoded entity address identifying the invocable entity. -* `InvocableEntityAlias` The alias identifying the invocable entity. +* `ByName` The alias identifying the invocable entity. -* `Package` The address and optional version identifying the package. +* `ByPackageHash` The address and optional version identifying the package. - Required parameters for `package` + Required Parameters: * `addr` The hex-encoded address of the package. @@ -1627,17 +1534,17 @@ One of: * `version` The package version. If `None`, the latest enabled version is implied. -* `PackageAlias` The alias and optional version identifying the package. +* `ByPackageName` The alias and optional version identifying the package. - Required parameters for `packagealias` + Required Parameters: - * `alias` The package alias. + * `name` The package name. - Optional parameters: + Optional Parameters: * `version` The package version. If `None`, the latest enabled version is implied. -## TransactionRuntime {#transactionruntime} +## TransactionRuntime Runtime used to execute a transaction. @@ -1645,7 +1552,9 @@ Parameters: * `VmCasperV1` The Casper Version 1 Virtual Machine. -## TransactionScheduling {#transactionscheduling} +* `VmCasperV2` The Casper Version 2 Virtual Machine. + +## TransactionScheduling The scheduling mode of a transaction. @@ -1665,21 +1574,7 @@ One of: * [`FutureTimestamp`](#timestamp) -## TransactionSessionKind {#transactionsessionkind} - -Session kind of a transaction. - -One of: - -* `standard` A standard (non-special-case) session. This kind of session is not allowed to install or upgrade a stored contract, but can call stored contracts. - -* `installer` A session which installs a stored contract. - -* `upgrader` A session which upgrades a previously-installed stored contract. `Upgrader` sessions must have the `package_id: PackageIdentifier` runtime arg present. - -* `isolated` A session which doesn't call any stored contracts. This kind of session is not allowed to install or upgrade a stored contract. - -## TransactionTarget {#transactiontarget} +## TransactionTarget The execution target of a Transaction. @@ -1699,19 +1594,17 @@ One of: Required parameters for a `session` target: - * [`kind`](#transactionsessionkind) - * [`module_bytes`](#bytes) * [`runtime`](#transactionruntime) -## TransactionV1 {#transactionV1} +## TransactionV1 A unit of work sent by a client to the network, which when executed can cause global state to be altered. Required Parameters: -* [`approvals`](#transactionV1approval) +* [`approvals`](#approval) * [`body`](#transactionV1body) @@ -1719,17 +1612,7 @@ Required Parameters: * [`header`](##transactionV1header) -## TransactionV1Approval {#transactionV1Approval} - -A struct containing a signature of a transaction hash and the public key of the signer. - -Required Parameters: - -* [`signer`](#publickey) - -* [`signature`](#signature) - -## TransactionV1Body {#transactionV1body} +## TransactionV1Body The body of a TransactionV1. @@ -1743,11 +1626,11 @@ Required Parameters: * [`target`](#transactiontarget) -## TransactionV1Hash {#transactionV1hash} +## TransactionV1Hash A hex-encoded TransactionV1 hash. -## TransactionV1Header {#transactionV1header} +## TransactionV1Header The header portion of a TransactionV1. @@ -1765,7 +1648,21 @@ Required Parameters: * [`ttl`](#timediff) -## Transfer {#transfer} +## Transfer + +A versioned wrapper for a transfer. + +One of: + +* [`Version1`](#transferv1) A version 1 transfer. + +* [`Version2`](#transferv2) A version 2 transfer. + +## TransferAddr + +Hex-encoded version 1 transfer address. + +## TransferV1 Represents a transfer from one purse to another. @@ -1777,23 +1674,43 @@ Required Parameters: * [`from`](#accounthash) Account from which transfer was executed. -* [`gas`](#u512) +* [`gas`](#gas) * [`source`](#uref) Source purse. * [`target`](#uref) Target purse. -Additional Parameters: +Optional Parameters: * `id` User-defined ID. * [`to`](#accounthash) Account to which funds are transferred. -## TransferAddr {#transferaddr} +## TransferV2 -Hex-encoded transfer address. +Represents a version 2 transfer from one purse to another. -## TransformError {#transformerror} +Required Parameters: + +* [`amount`](#u512) Transfer amount. + +* [`transaction_hash`](#transactionhash) Transaction that created the transfer. + +* [`from`](#initiatoraddr) Entity from which transfer was executed. + +* [`gas`](#gas) + +* [`source`](#uref) Source purse. + +* [`target`](#uref) Target purse. + +Optional Parameters: + +* `id` User-defined ID. + +* [`to`](#accounthash) Account to which funds are transferred. + +## TransformError Error type for applying and combining transforms. A `TypeMismatch` occurs when a transform cannot be applied because the types are not compatible (e.g. trying to add a number to a string). @@ -1805,7 +1722,7 @@ One of: * `deprecated` Type no longer supported. -## TransformV1 {#transformv1} +## TransformV1 A transformation performed while executing a Deploy. @@ -1815,7 +1732,7 @@ Required Parameters: * [`transforms`](#transformkindv1) The transformation. -## Transformv2 {#transformv2} +## TransformV2 A transformation performed while executing a Deploy. @@ -1825,7 +1742,7 @@ Required Parameters: * [`kind`](#transformkindv2) The transformation. -## TransformKindV1 {#transformkindv1} +## TransformKindV1 The actual transformation performed while executing a Deploy in version 1. @@ -1873,9 +1790,9 @@ One of: * `Prune` Removes the pathing to the global state entry of the specified key. The pruned element remains reachable from previously generated global state root hashes, but will not be included in the next generated global state root hash and subsequent states. -* `Failure` A failed transformation, containing an error message. +* `Failure` Represents the case where applying a transform would cause an error. -## TransformKindV1 {#transformkindv1} +## TransformKindV2 The actual transformation performed while executing a Deploy in version 2. @@ -1899,9 +1816,9 @@ One of: * `Prune` Removes the pathing to the global state entry of the specified key. The pruned element remains reachable from previously generated global state root hashes, but will not be included in the next generated global state root hash and subsequent states. -* `Failure` A failed transformation, containing an error message. +* `Failure` Represents the case where applying a transform would cause an error. -## TypeMismatch {#typemismatch} +## TypeMismatch An error struct representing a type mismatch in [`StoredValue`](#storedvalue) operations. @@ -1909,19 +1826,19 @@ An error struct representing a type mismatch in [`StoredValue`](#storedvalue) op * `found` The actual type found. -## U128 {#u128} +## U128 Decimal representation of a 128-bit integer. -## U256 {#u256} +## U256 Decimal representation of a 256-bit integer. -## U512 {#u512} +## U512 Decimal representation of a 512-bit integer. -## UnbondingPurse {#unbondingpurse} +## UnbondingPurse Unbonding purse. @@ -1937,43 +1854,69 @@ Required Parameters: * [`validator_public_key`](#publickey) The original validator's public key. +Optional Parameters: + * [`new_validator`](#newvalidator) The redelegated validator's public key. -## URef {#uref} +## URef Hex-encoded, formatted URef. -## ValidatorBid {#validatorbid} +## ValidatorBid An entry in the validator map. +Required Parameters: + * [`bonding_purse`](#uref) Bonding purse. * `delegation_rate` The delegation rate. * `inactive` `true` if the validator has been "evicted". +* `maximum_delegation_amount` Minimum allowed delegation amount in motes. + +* `minimum_delegation_amount` Maximum allowed delegation amount in motes. + * [`staked_amount`](#u512) The amount of tokens staked by a validator. * [`validator_public_key`](#publickey) The validator's public key. +Optional Parameters: + * [`vesting_schedule`](#vestingschedule) -## ValidatorChange {#validatorchange} +## ValidatorChange A change to a validator's status between two eras. -* `Added` +One of: + +* `Added` The validator was just added to the validator set. + +* `Removed` The validator was removed from the validator set. + +* `Banned` The validator was banned from this era. + +* `CannotPropose` The validator was excluded from proposing new blocks in this era. -* `Removed` +* `SeenAsFaulty` We saw the validator misbehave in this era. -* `Banned` +## ValidatorCredit -* `CannotPropose` +Validator credit record. -* `SeenAsFaulty` +Required Parameters: + +* [`amount`](#u512) The credit amount. + +* [`era_id`](#eraid) The era id the credit was created. + +* [`validator_public_key`](#publickey) The validator's public key. + +## ValidatorWeight -## ValidatorWeight {#validatorweight} +A validator's public key paired with its weight, i.e. the total number of motes it staked together with its delegators. Required Parameters: @@ -1981,19 +1924,19 @@ Required Parameters: * [`weight`](#u512) -## VestingSchedule {#vestingschedule} +## VestingSchedule Vesting schedule for a genesis validator. -* `initial_release_timestamp_millies` Timestamp of the initial release. +Required Parameters: -* [`locked_amounts`](#u512) The amount of locked motes. +* `initial_release_timestamp_millies` Timestamp of the initial release. -## Weight {#weight} +Optional Parameters: -The weight associated with public keys in an account's associated keys. +* [`locked_amounts`](#u512) The amount of locked motes. -## WithdrawPurse {#withdrawpurse} +## WithdrawPurse Withdraw purse, previously known as unbonding purse prior to 1.5. Withdraw purses remain as historical data. diff --git a/source/docs/casper/developers/json-rpc/types_cl.md b/source/docs/casper/developers/json-rpc/types_cl.md index 0f82d01dae..58c4bf7001 100644 --- a/source/docs/casper/developers/json-rpc/types_cl.md +++ b/source/docs/casper/developers/json-rpc/types_cl.md @@ -1,40 +1,32 @@ -# CLType {#cltype} +# CLType Casper types, i.e. types which can be stored and manipulated by smart contracts. Provides a description of the underlying data type of a [`CLValue`](#clvalue). - `Bool` - `I32` - `I64` - `U8` - `U32` - `U64` - `U128` - `U256` - `U512` - `Unit` - `String` - `Key` - `URef` - `PublicKey` - `Any` - -* `Option` Option of a `CLType`. - -* `List` Variable-length list of a single `CLType` (comparable to a `Vec`). - -* `ByteArray` Fixed-length list of a single `CLType` (comparable to a Rust array). - -* `Result` `Result` with `Ok` and `Err` variants of `CLType`'s. - -* `Map` Map with keys of a single `CLType` and values of a single `CLType`. - -* `Tuple1` 1-ary tuple of a `CLType`. - -* `Tuple2` 2-ary tuple of `CLType`s. - -* `Tuple3` 3-ary tuple of `CLType`s. - -## CLValue {#clvalue} +* `Bool` Primitive +* `I32` Primitive +* `I64` Primitive +* `U8` Primitive +* `U32` Primitive +* `U64` Primitive +* `U128` Large unsigned integer type +* `U256` Large unsigned integer type +* `U512` Large unsigned integer type +* `Unit` Primitive +* `String` Primitive +* `Key` System type +* `URef` System type +* `PublicKey` System type +* `Option` Option of a `CLType` +* `List` Variable-length list of a single `CLType` (comparable to a `Vec`) +* `ByteArray` Fixed-length list of a single `CLType` (comparable to a Rust array) +* `Result` `Result` with `Ok` and `Err` variants of `CLType`'s +* `Map` Map with keys of a single `CLType` and values of a single `CLType` +* `Tuple1` 1-ary tuple of a `CLType` +* `Tuple2` 2-ary tuple of `CLType`s +* `Tuple3` 3-ary tuple of `CLType`s +* `Any` Unspecified type + +## CLValue A Casper value, i.e. a value which can be stored and manipulated by smart contracts. It holds the underlying data as a type-erased, serialized `Vec` and also holds the CLType of the underlying data as a separate member. The `parsed` field, representing the original value, is a convenience only available when a CLValue is encoded to JSON, and can always be set to null if preferred.