Skip to content

Instantly share code, notes, and snippets.

@Fraser999
Created April 21, 2021 19:03
Show Gist options
  • Save Fraser999/a510101058b1fa2e21118237fae7c51e to your computer and use it in GitHub Desktop.
Save Fraser999/a510101058b1fa2e21118237fae7c51e to your computer and use it in GitHub Desktop.
The OpenRPC-compatible schema describing the JSON-RPC API of the Casper network at version 1.0.0.
{
"openrpc":"1.0.0-rc1",
"info":{
"version":"1.0.0",
"title":"Client API of Casper Node",
"description":"This describes the JSON-RPC 2.0 API of a node on the Casper network.",
"contact":{
"name":"CasperLabs",
"url":"https://casperlabs.io"
},
"license":{
"name":"CasperLabs Open Source License Version 1.0",
"url":"https://raw.githubusercontent.com/CasperLabs/casper-node/master/LICENSE"
}
},
"servers":[
{
"name":"any Casper Network node",
"url":"http://IP:PORT/rpc/"
}
],
"methods":[
{
"name":"account_put_deploy",
"summary":"receives a Deploy to be executed by the network",
"params":[
{
"name":"deploy",
"schema":{
"description":"The `Deploy`.",
"$ref":"#/components/schemas/Deploy"
},
"required":true
}
],
"result":{
"name":"account_put_deploy_result",
"schema":{
"description":"Result for \"account_put_deploy\" RPC response.",
"type":"object",
"required":[
"api_version",
"deploy_hash"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"deploy_hash":{
"description":"The deploy hash.",
"$ref":"#/components/schemas/DeployHash"
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"account_put_deploy_example",
"params":[
{
"name":"deploy",
"value":{
"approvals":[
{
"signature":"012dbf03817a51794a8e19e0724884075e6d1fbec326b766ecfa6658b41f81290da85e23b24e88b1c8d9761185c961daee1adab0649912a6477bcd2e69bd91bd08",
"signer":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c"
}
],
"hash":"01da3c604f71e0e7df83ff1ab4ef15bb04de64ca02e3d2b78de6950e8b5ee187",
"header":{
"account":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
"body_hash":"4811966d37fe5674a8af4001884ea0d9042d1c06668da0c963769c3a01ebd08f",
"chain_name":"casper-example",
"dependencies":[
"0101010101010101010101010101010101010101010101010101010101010101"
],
"gas_price":1,
"timestamp":"2020-11-17T00:39:24.072Z",
"ttl":"1h"
},
"payment":{
"StoredContractByName":{
"args":[
[
"quantity",
{
"bytes":"e8030000",
"cl_type":"I32",
"parsed":1000
}
]
],
"entry_point":"example-entry-point",
"name":"casper-example"
}
},
"session":{
"Transfer":{
"args":[
[
"amount",
{
"bytes":"e8030000",
"cl_type":"I32",
"parsed":1000
}
]
]
}
}
}
}
],
"result":{
"name":"account_put_deploy_example_result",
"value":{
"api_version":"1.0.0",
"deploy_hash":"01da3c604f71e0e7df83ff1ab4ef15bb04de64ca02e3d2b78de6950e8b5ee187"
}
}
}
]
},
{
"name":"info_get_deploy",
"summary":"returns a Deploy from the network",
"params":[
{
"name":"deploy_hash",
"schema":{
"description":"The deploy hash.",
"$ref":"#/components/schemas/DeployHash"
},
"required":true
}
],
"result":{
"name":"info_get_deploy_result",
"schema":{
"description":"Result for \"info_get_deploy\" RPC response.",
"type":"object",
"required":[
"api_version",
"deploy",
"execution_results"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"deploy":{
"description":"The deploy.",
"$ref":"#/components/schemas/Deploy"
},
"execution_results":{
"description":"The map of block hash to execution result.",
"type":"array",
"items":{
"$ref":"#/components/schemas/JsonExecutionResult"
}
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"info_get_deploy_example",
"params":[
{
"name":"deploy_hash",
"value":"01da3c604f71e0e7df83ff1ab4ef15bb04de64ca02e3d2b78de6950e8b5ee187"
}
],
"result":{
"name":"info_get_deploy_example_result",
"value":{
"api_version":"1.0.0",
"deploy":{
"approvals":[
{
"signature":"012dbf03817a51794a8e19e0724884075e6d1fbec326b766ecfa6658b41f81290da85e23b24e88b1c8d9761185c961daee1adab0649912a6477bcd2e69bd91bd08",
"signer":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c"
}
],
"hash":"01da3c604f71e0e7df83ff1ab4ef15bb04de64ca02e3d2b78de6950e8b5ee187",
"header":{
"account":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
"body_hash":"4811966d37fe5674a8af4001884ea0d9042d1c06668da0c963769c3a01ebd08f",
"chain_name":"casper-example",
"dependencies":[
"0101010101010101010101010101010101010101010101010101010101010101"
],
"gas_price":1,
"timestamp":"2020-11-17T00:39:24.072Z",
"ttl":"1h"
},
"payment":{
"StoredContractByName":{
"args":[
[
"quantity",
{
"bytes":"e8030000",
"cl_type":"I32",
"parsed":1000
}
]
],
"entry_point":"example-entry-point",
"name":"casper-example"
}
},
"session":{
"Transfer":{
"args":[
[
"amount",
{
"bytes":"e8030000",
"cl_type":"I32",
"parsed":1000
}
]
]
}
}
},
"execution_results":[
{
"block_hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18",
"result":{
"Success":{
"cost":"123456",
"effect":{
"operations":[
{
"key":"account-hash-2c4a11c062a8a337bfc97e27fd66291caeb2c65865dcb5d3ef3759c4c97efecb",
"kind":"Write"
},
{
"key":"deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1",
"kind":"Read"
}
],
"transforms":[
{
"key":"uref-2c4a11c062a8a337bfc97e27fd66291caeb2c65865dcb5d3ef3759c4c97efecb-007",
"transform":{
"AddUInt64":8
}
},
{
"key":"deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1",
"transform":"Identity"
}
]
},
"transfers":[
"transfer-5959595959595959595959595959595959595959595959595959595959595959",
"transfer-8282828282828282828282828282828282828282828282828282828282828282"
]
}
}
}
]
}
}
}
]
},
{
"name":"info_get_peers",
"summary":"returns a list of peers connected to the node",
"params":[
],
"result":{
"name":"info_get_peers_result",
"schema":{
"description":"Result for \"info_get_peers\" RPC response.",
"type":"object",
"required":[
"api_version",
"peers"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"peers":{
"description":"The node ID and network address of each connected peer.",
"$ref":"#/components/schemas/PeersMap"
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"info_get_peers_example",
"params":[
],
"result":{
"name":"info_get_peers_example_result",
"value":{
"api_version":"1.0.0",
"peers":[
{
"address":"127.0.0.1:54321",
"node_id":"NodeId::Tls(0101..0101)"
}
]
}
}
}
]
},
{
"name":"info_get_status",
"summary":"returns the current status of the node",
"params":[
],
"result":{
"name":"info_get_status_result",
"schema":{
"description":"Result for \"info_get_status\" RPC response.",
"type":"object",
"required":[
"api_version",
"build_version",
"chainspec_name",
"peers",
"starting_state_root_hash"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"chainspec_name":{
"description":"The chainspec name.",
"type":"string"
},
"starting_state_root_hash":{
"description":"The state root hash used at the start of the current session.",
"type":"string"
},
"peers":{
"description":"The node ID and network address of each connected peer.",
"$ref":"#/components/schemas/PeersMap"
},
"last_added_block_info":{
"description":"The minimal info of the last block from the linear chain.",
"anyOf":[
{
"$ref":"#/components/schemas/MinimalBlockInfo"
},
{
"type":"null"
}
]
},
"our_public_signing_key":{
"description":"Our public signing key.",
"anyOf":[
{
"$ref":"#/components/schemas/PublicKey"
},
{
"type":"null"
}
]
},
"round_length":{
"description":"The next round length if this node is a validator.",
"anyOf":[
{
"$ref":"#/components/schemas/TimeDiff"
},
{
"type":"null"
}
]
},
"next_upgrade":{
"description":"Information about the next scheduled upgrade.",
"anyOf":[
{
"$ref":"#/components/schemas/NextUpgrade"
},
{
"type":"null"
}
]
},
"build_version":{
"description":"The compiled node version.",
"type":"string"
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"info_get_status_example",
"params":[
],
"result":{
"name":"info_get_status_example_result",
"value":{
"api_version":"1.0.0",
"build_version":"1.0.0-34c802333",
"chainspec_name":"casper-example",
"last_added_block_info":{
"creator":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
"era_id":1,
"hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18",
"height":10,
"state_root_hash":"0808080808080808080808080808080808080808080808080808080808080808",
"timestamp":"2020-11-17T00:39:24.072Z"
},
"next_upgrade":{
"activation_point":42,
"protocol_version":"2.0.1"
},
"our_public_signing_key":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
"peers":[
{
"address":"127.0.0.1:54321",
"node_id":"NodeId::Tls(0101..0101)"
}
],
"round_length":"1m 5s 536ms",
"starting_state_root_hash":"0202..0202"
}
}
}
]
},
{
"name":"chain_get_block",
"summary":"returns a Block from the network",
"params":[
{
"name":"block_identifier",
"schema":{
"description":"The block hash.",
"$ref":"#/components/schemas/BlockIdentifier"
},
"required":true
}
],
"result":{
"name":"chain_get_block_result",
"schema":{
"description":"Result for \"chain_get_block\" RPC response.",
"type":"object",
"required":[
"api_version"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"block":{
"description":"The block, if found.",
"anyOf":[
{
"$ref":"#/components/schemas/JsonBlock"
},
{
"type":"null"
}
]
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"chain_get_block_example",
"params":[
{
"name":"block_identifier",
"value":{
"Hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18"
}
}
],
"result":{
"name":"chain_get_block_example_result",
"value":{
"api_version":"1.0.0",
"block":{
"body":{
"deploy_hashes":[
"01da3c604f71e0e7df83ff1ab4ef15bb04de64ca02e3d2b78de6950e8b5ee187"
],
"proposer":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
"transfer_hashes":[
]
},
"hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18",
"header":{
"accumulated_seed":"ac979f51525cfd979b14aa7dc0737c5154eabe0db9280eceaa8dc8d2905b20d5",
"body_hash":"5f4b03936cebebe35eb1f2c542d34098b4c645c898673f1597de64ebdf916956",
"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"
},
{
"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"
},
"proofs":[
{
"public_key":"01d9bf2148748a85c89da5aad8ee0b0fc2d105fd39d41a4c796536354f0ae2900c",
"signature":"01674bf915211f4038d8e4ce9c68023d8b77a85fd937aaf951e1dc16e88a75664a055bf531babdb742003b7e731e3515138928045145490fdec530b461b97c7a0a"
}
]
}
}
}
}
]
},
{
"name":"chain_get_block_transfers",
"summary":"returns all transfers for a Block from the network",
"params":[
{
"name":"block_identifier",
"schema":{
"description":"The block hash.",
"$ref":"#/components/schemas/BlockIdentifier"
},
"required":true
}
],
"result":{
"name":"chain_get_block_transfers_result",
"schema":{
"description":"Result for \"chain_get_block_transfers\" RPC response.",
"type":"object",
"required":[
"api_version"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"block_hash":{
"description":"The block hash, if found.",
"anyOf":[
{
"$ref":"#/components/schemas/BlockHash"
},
{
"type":"null"
}
]
},
"transfers":{
"description":"The block's transfers, if found.",
"type":[
"array",
"null"
],
"items":{
"$ref":"#/components/schemas/Transfer"
}
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"chain_get_block_transfers_example",
"params":[
{
"name":"block_identifier",
"value":{
"Hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18"
}
}
],
"result":{
"name":"chain_get_block_transfers_example_result",
"value":{
"api_version":"1.0.0",
"block_hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18",
"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_state_root_hash",
"summary":"returns a state root hash at a given Block",
"params":[
{
"name":"block_identifier",
"schema":{
"description":"The block hash.",
"$ref":"#/components/schemas/BlockIdentifier"
},
"required":true
}
],
"result":{
"name":"chain_get_state_root_hash_result",
"schema":{
"description":"Result for \"chain_get_state_root_hash\" RPC response.",
"type":"object",
"required":[
"api_version"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"state_root_hash":{
"description":"Hex-encoded hash of the state root.",
"anyOf":[
{
"$ref":"#/components/schemas/Digest"
},
{
"type":"null"
}
]
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"chain_get_state_root_hash_example",
"params":[
{
"name":"block_identifier",
"value":{
"Height":10
}
}
],
"result":{
"name":"chain_get_state_root_hash_example_result",
"value":{
"api_version":"1.0.0",
"state_root_hash":"0808080808080808080808080808080808080808080808080808080808080808"
}
}
}
]
},
{
"name":"state_get_item",
"summary":"returns a stored value from the network",
"params":[
{
"name":"state_root_hash",
"schema":{
"description":"Hash of the state root.",
"$ref":"#/components/schemas/Digest"
},
"required":true
},
{
"name":"key",
"schema":{
"description":"`casper_types::Key` as formatted string.",
"type":"string"
},
"required":true
},
{
"name":"path",
"schema":{
"description":"The path components starting from the key as base.",
"default":[
],
"type":"array",
"items":{
"type":"string"
}
},
"required":false
}
],
"result":{
"name":"state_get_item_result",
"schema":{
"description":"Result for \"state_get_item\" RPC response.",
"type":"object",
"required":[
"api_version",
"merkle_proof",
"stored_value"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"stored_value":{
"description":"The stored value.",
"$ref":"#/components/schemas/StoredValue"
},
"merkle_proof":{
"description":"The merkle proof.",
"type":"string"
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"state_get_item_example",
"params":[
{
"name":"key",
"value":"deploy-af684263911154d26fa05be9963171802801a0b6aff8f199b7391eacb8edc9e1"
},
{
"name":"path",
"value":[
"inner"
]
},
{
"name":"state_root_hash",
"value":"0808080808080808080808080808080808080808080808080808080808080808"
}
],
"result":{
"name":"state_get_item_example_result",
"value":{
"api_version":"1.0.0",
"merkle_proof":"01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3",
"stored_value":{
"CLValue":{
"bytes":"0100000000000000",
"cl_type":"U64",
"parsed":1
}
}
}
}
}
]
},
{
"name":"state_get_balance",
"summary":"returns a purse's balance from the network",
"params":[
{
"name":"state_root_hash",
"schema":{
"description":"The hash of state root.",
"$ref":"#/components/schemas/Digest"
},
"required":true
},
{
"name":"purse_uref",
"schema":{
"description":"Formatted URef.",
"type":"string"
},
"required":true
}
],
"result":{
"name":"state_get_balance_result",
"schema":{
"description":"Result for \"state_get_balance\" RPC response.",
"type":"object",
"required":[
"api_version",
"balance_value",
"merkle_proof"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"balance_value":{
"description":"The balance value.",
"$ref":"#/components/schemas/U512"
},
"merkle_proof":{
"description":"The merkle proof.",
"type":"string"
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"state_get_balance_example",
"params":[
{
"name":"purse_uref",
"value":"uref-09480c3248ef76b603d386f3f4f8a5f87f597d4eaffd475433f861af187ab5db-007"
},
{
"name":"state_root_hash",
"value":"0808080808080808080808080808080808080808080808080808080808080808"
}
],
"result":{
"name":"state_get_balance_example_result",
"value":{
"api_version":"1.0.0",
"balance_value":"123456",
"merkle_proof":"01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3"
}
}
}
]
},
{
"name":"chain_get_era_info_by_switch_block",
"summary":"returns an EraInfo from the network",
"params":[
{
"name":"block_identifier",
"schema":{
"description":"The block identifier.",
"$ref":"#/components/schemas/BlockIdentifier"
},
"required":true
}
],
"result":{
"name":"chain_get_era_info_by_switch_block_result",
"schema":{
"description":"Result for \"chain_get_era_info\" RPC response.",
"type":"object",
"required":[
"api_version"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"era_summary":{
"description":"The era summary.",
"anyOf":[
{
"$ref":"#/components/schemas/EraSummary"
},
{
"type":"null"
}
]
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"chain_get_era_info_by_switch_block_example",
"params":[
{
"name":"block_identifier",
"value":{
"Hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18"
}
}
],
"result":{
"name":"chain_get_era_info_by_switch_block_example_result",
"value":{
"api_version":"1.0.0",
"era_summary":{
"block_hash":"528c63a9e30bf6e52b9d38f7c1a3e2ec035a54bfb29225d31ecedff00eebbe18",
"era_id":42,
"merkle_proof":"01000000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625016ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a72536147614625000000003529cde5c621f857f75f3810611eb4af3f998caaa9d4a3413cf799f99c67db0307010000006ef2e0949ac76e55812421f755abe129b6244fe7168b77f47a7253614761462501010102000000006e06000000000074769d28aac597a36a03a932d4b43e4f10bf0403ee5c41dd035102553f5773631200b9e173e8f05361b681513c14e25e3138639eb03232581db7557c9e8dbbc83ce94500226a9a7fe4f2b7b88d5103a4fc7400f02bf89c860c9ccdd56951a2afe9be0e0267006d820fb5676eb2960e15722f7725f3f8f41030078f8b2e44bf0dc03f71b176d6e800dc5ae9805068c5be6da1a90b2528ee85db0609cc0fb4bd60bbd559f497a98b67f500e1e3e846592f4918234647fca39830b7e1e6ad6f5b7a99b39af823d82ba1873d000003000000010186ff500f287e9b53f823ae1582b1fa429dfede28015125fd233a31ca04d5012002015cc42669a55467a1fdf49750772bfc1aed59b9b085558eb81510e9b015a7c83b0301e3cf4a34b1db6bfa58808b686cb8fe21ebe0c1bcbcee522649d2b135fe510fe3",
"state_root_hash":"0808080808080808080808080808080808080808080808080808080808080808",
"stored_value":{
"EraInfo":{
"seigniorage_allocations":[
]
}
}
}
}
}
}
]
},
{
"name":"state_get_auction_info",
"summary":"returns the bids and validators as of the most recently added Block",
"params":[
],
"result":{
"name":"state_get_auction_info_result",
"schema":{
"description":"Result for \"state_get_auction_info\" RPC response.",
"type":"object",
"required":[
"api_version",
"auction_state"
],
"properties":{
"api_version":{
"description":"The RPC API version.",
"type":"string"
},
"auction_state":{
"description":"The auction state.",
"$ref":"#/components/schemas/AuctionState"
}
},
"additionalProperties":false
}
},
"examples":[
{
"name":"state_get_auction_info_example",
"params":[
],
"result":{
"name":"state_get_auction_info_example_result",
"value":{
"api_version":"1.0.0",
"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"
}
]
}
],
"state_root_hash":"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
}
}
}
}
]
}
],
"components":{
"schemas":{
"Deploy":{
"description":"A deploy; an item containing a smart contract along with the requester's signature(s).",
"type":"object",
"required":[
"approvals",
"hash",
"header",
"payment",
"session"
],
"properties":{
"hash":{
"$ref":"#/components/schemas/DeployHash"
},
"header":{
"$ref":"#/components/schemas/DeployHeader"
},
"payment":{
"$ref":"#/components/schemas/ExecutableDeployItem"
},
"session":{
"$ref":"#/components/schemas/ExecutableDeployItem"
},
"approvals":{
"type":"array",
"items":{
"$ref":"#/components/schemas/Approval"
}
}
},
"additionalProperties":false
},
"DeployHash":{
"description":"Hex-encoded deploy hash.",
"allOf":[
{
"$ref":"#/components/schemas/Digest"
}
]
},
"Digest":{
"description":"Hex-encoded hash digest.",
"type":"string"
},
"DeployHeader":{
"description":"The header portion of a [`Deploy`](struct.Deploy.html).",
"type":"object",
"required":[
"account",
"body_hash",
"chain_name",
"dependencies",
"gas_price",
"timestamp",
"ttl"
],
"properties":{
"account":{
"$ref":"#/components/schemas/PublicKey"
},
"timestamp":{
"$ref":"#/components/schemas/Timestamp"
},
"ttl":{
"$ref":"#/components/schemas/TimeDiff"
},
"gas_price":{
"type":"integer",
"format":"uint64",
"minimum":0
},
"body_hash":{
"$ref":"#/components/schemas/Digest"
},
"dependencies":{
"type":"array",
"items":{
"$ref":"#/components/schemas/DeployHash"
}
},
"chain_name":{
"type":"string"
}
},
"additionalProperties":false
},
"PublicKey":{
"description":"Hex-encoded cryptographic public key, including the algorithm tag prefix.",
"type":"string"
},
"Timestamp":{
"description":"Timestamp formatted as per RFC 3339",
"type":"integer",
"format":"uint64",
"minimum":0
},
"TimeDiff":{
"description":"Human-readable duration.",
"type":"integer",
"format":"uint64",
"minimum":0
},
"ExecutableDeployItem":{
"anyOf":[
{
"type":"object",
"required":[
"ModuleBytes"
],
"properties":{
"ModuleBytes":{
"type":"object",
"required":[
"args",
"module_bytes"
],
"properties":{
"module_bytes":{
"description":"Hex-encoded raw Wasm bytes.",
"type":"string"
},
"args":{
"$ref":"#/components/schemas/RuntimeArgs"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"type":"object",
"required":[
"StoredContractByHash"
],
"properties":{
"StoredContractByHash":{
"type":"object",
"required":[
"args",
"entry_point",
"hash"
],
"properties":{
"hash":{
"description":"Hex-encoded hash.",
"type":"string"
},
"entry_point":{
"type":"string"
},
"args":{
"$ref":"#/components/schemas/RuntimeArgs"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"type":"object",
"required":[
"StoredContractByName"
],
"properties":{
"StoredContractByName":{
"type":"object",
"required":[
"args",
"entry_point",
"name"
],
"properties":{
"name":{
"type":"string"
},
"entry_point":{
"type":"string"
},
"args":{
"$ref":"#/components/schemas/RuntimeArgs"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"type":"object",
"required":[
"StoredVersionedContractByHash"
],
"properties":{
"StoredVersionedContractByHash":{
"type":"object",
"required":[
"args",
"entry_point",
"hash"
],
"properties":{
"hash":{
"description":"Hex-encoded hash.",
"type":"string"
},
"version":{
"type":[
"integer",
"null"
],
"format":"uint32",
"minimum":0
},
"entry_point":{
"type":"string"
},
"args":{
"$ref":"#/components/schemas/RuntimeArgs"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"type":"object",
"required":[
"StoredVersionedContractByName"
],
"properties":{
"StoredVersionedContractByName":{
"type":"object",
"required":[
"args",
"entry_point",
"name"
],
"properties":{
"name":{
"type":"string"
},
"version":{
"type":[
"integer",
"null"
],
"format":"uint32",
"minimum":0
},
"entry_point":{
"type":"string"
},
"args":{
"$ref":"#/components/schemas/RuntimeArgs"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"type":"object",
"required":[
"Transfer"
],
"properties":{
"Transfer":{
"type":"object",
"required":[
"args"
],
"properties":{
"args":{
"$ref":"#/components/schemas/RuntimeArgs"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
}
]
},
"RuntimeArgs":{
"description":"Represents a collection of arguments passed to a smart contract.",
"type":"array",
"items":{
"$ref":"#/components/schemas/NamedArg"
}
},
"NamedArg":{
"description":"Named arguments to a contract",
"type":"array",
"items":[
{
"type":"string"
},
{
"$ref":"#/components/schemas/CLValue"
}
],
"maxItems":2,
"minItems":2
},
"CLValue":{
"description":"A Casper value, i.e. a value which can be stored and manipulated by smart contracts.\n\nIt holds the underlying data as a type-erased, serialized `Vec<u8>` and also holds the CLType of the underlying data as a separate member.\n\nThe `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.",
"type":"object",
"required":[
"bytes",
"cl_type"
],
"properties":{
"cl_type":{
"$ref":"#/components/schemas/CLType"
},
"bytes":{
"type":"string"
},
"parsed":true
},
"additionalProperties":false
},
"CLType":{
"description":"Casper types, i.e. types which can be stored and manipulated by smart contracts.\n\nProvides a description of the underlying data type of a [`CLValue`](crate::CLValue).",
"anyOf":[
{
"type":"string",
"enum":[
"Bool",
"I32",
"I64",
"U8",
"U32",
"U64",
"U128",
"U256",
"U512",
"Unit",
"String",
"Key",
"URef",
"PublicKey",
"Any"
]
},
{
"description":"`Option` of a `CLType`.",
"type":"object",
"required":[
"Option"
],
"properties":{
"Option":{
"$ref":"#/components/schemas/CLType"
}
},
"additionalProperties":false
},
{
"description":"Variable-length list of a single `CLType` (comparable to a `Vec`).",
"type":"object",
"required":[
"List"
],
"properties":{
"List":{
"$ref":"#/components/schemas/CLType"
}
},
"additionalProperties":false
},
{
"description":"Fixed-length list of a single `CLType` (comparable to a Rust array).",
"type":"object",
"required":[
"ByteArray"
],
"properties":{
"ByteArray":{
"type":"integer",
"format":"uint32",
"minimum":0
}
},
"additionalProperties":false
},
{
"description":"`Result` with `Ok` and `Err` variants of `CLType`s.",
"type":"object",
"required":[
"Result"
],
"properties":{
"Result":{
"type":"object",
"required":[
"err",
"ok"
],
"properties":{
"ok":{
"$ref":"#/components/schemas/CLType"
},
"err":{
"$ref":"#/components/schemas/CLType"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"description":"Map with keys of a single `CLType` and values of a single `CLType`.",
"type":"object",
"required":[
"Map"
],
"properties":{
"Map":{
"type":"object",
"required":[
"key",
"value"
],
"properties":{
"key":{
"$ref":"#/components/schemas/CLType"
},
"value":{
"$ref":"#/components/schemas/CLType"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"description":"1-ary tuple of a `CLType`.",
"type":"object",
"required":[
"Tuple1"
],
"properties":{
"Tuple1":{
"type":"array",
"items":{
"$ref":"#/components/schemas/CLType"
},
"maxItems":1,
"minItems":1
}
},
"additionalProperties":false
},
{
"description":"2-ary tuple of `CLType`s.",
"type":"object",
"required":[
"Tuple2"
],
"properties":{
"Tuple2":{
"type":"array",
"items":{
"$ref":"#/components/schemas/CLType"
},
"maxItems":2,
"minItems":2
}
},
"additionalProperties":false
},
{
"description":"3-ary tuple of `CLType`s.",
"type":"object",
"required":[
"Tuple3"
],
"properties":{
"Tuple3":{
"type":"array",
"items":{
"$ref":"#/components/schemas/CLType"
},
"maxItems":3,
"minItems":3
}
},
"additionalProperties":false
}
]
},
"Approval":{
"description":"A struct containing a signature and the public key of the signer.",
"type":"object",
"required":[
"signature",
"signer"
],
"properties":{
"signer":{
"$ref":"#/components/schemas/PublicKey"
},
"signature":{
"$ref":"#/components/schemas/Signature"
}
},
"additionalProperties":false
},
"Signature":{
"description":"Hex-encoded cryptographic signature, including the algorithm tag prefix.",
"type":"string"
},
"JsonExecutionResult":{
"description":"The execution result of a single deploy.",
"type":"object",
"required":[
"block_hash",
"result"
],
"properties":{
"block_hash":{
"description":"The block hash.",
"allOf":[
{
"$ref":"#/components/schemas/BlockHash"
}
]
},
"result":{
"description":"Execution result.",
"allOf":[
{
"$ref":"#/components/schemas/ExecutionResult"
}
]
}
},
"additionalProperties":false
},
"BlockHash":{
"description":"A cryptographic hash identifying a [`Block`](struct.Block.html).",
"allOf":[
{
"$ref":"#/components/schemas/Digest"
}
]
},
"ExecutionResult":{
"description":"The result of executing a single deploy.",
"anyOf":[
{
"description":"The result of a failed execution.",
"type":"object",
"required":[
"Failure"
],
"properties":{
"Failure":{
"type":"object",
"required":[
"cost",
"effect",
"error_message",
"transfers"
],
"properties":{
"effect":{
"description":"The effect of executing the deploy.",
"allOf":[
{
"$ref":"#/components/schemas/ExecutionEffect"
}
]
},
"transfers":{
"description":"A record of Transfers performed while executing the deploy.",
"type":"array",
"items":{
"$ref":"#/components/schemas/TransferAddr"
}
},
"cost":{
"description":"The cost of executing the deploy.",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
},
"error_message":{
"description":"The error message associated with executing the deploy.",
"type":"string"
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"description":"The result of a successful execution.",
"type":"object",
"required":[
"Success"
],
"properties":{
"Success":{
"type":"object",
"required":[
"cost",
"effect",
"transfers"
],
"properties":{
"effect":{
"description":"The effect of executing the deploy.",
"allOf":[
{
"$ref":"#/components/schemas/ExecutionEffect"
}
]
},
"transfers":{
"description":"A record of Transfers performed while executing the deploy.",
"type":"array",
"items":{
"$ref":"#/components/schemas/TransferAddr"
}
},
"cost":{
"description":"The cost of executing the deploy.",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
}
},
"additionalProperties":false
}
},
"additionalProperties":false
}
]
},
"ExecutionEffect":{
"description":"The effect of executing a single deploy.",
"type":"object",
"required":[
"operations",
"transforms"
],
"properties":{
"operations":{
"description":"The resulting operations.",
"type":"array",
"items":{
"$ref":"#/components/schemas/Operation"
}
},
"transforms":{
"description":"The resulting transformations.",
"type":"array",
"items":{
"$ref":"#/components/schemas/TransformEntry"
}
}
},
"additionalProperties":false
},
"Operation":{
"description":"An operation performed while executing a deploy.",
"type":"object",
"required":[
"key",
"kind"
],
"properties":{
"key":{
"description":"The formatted string of the `Key`.",
"type":"string"
},
"kind":{
"description":"The type of operation.",
"allOf":[
{
"$ref":"#/components/schemas/OpKind"
}
]
}
},
"additionalProperties":false
},
"OpKind":{
"description":"The type of operation performed while executing a deploy.",
"type":"string",
"enum":[
"Read",
"Write",
"Add",
"NoOp"
]
},
"TransformEntry":{
"description":"A transformation performed while executing a deploy.",
"type":"object",
"required":[
"key",
"transform"
],
"properties":{
"key":{
"description":"The formatted string of the `Key`.",
"type":"string"
},
"transform":{
"description":"The transformation.",
"allOf":[
{
"$ref":"#/components/schemas/Transform"
}
]
}
},
"additionalProperties":false
},
"Transform":{
"description":"The actual transformation performed while executing a deploy.",
"anyOf":[
{
"type":"string",
"enum":[
"Identity",
"WriteContractWasm",
"WriteContract",
"WriteContractPackage"
]
},
{
"description":"Writes the given CLValue to global state.",
"type":"object",
"required":[
"WriteCLValue"
],
"properties":{
"WriteCLValue":{
"$ref":"#/components/schemas/CLValue"
}
},
"additionalProperties":false
},
{
"description":"Writes the given Account to global state.",
"type":"object",
"required":[
"WriteAccount"
],
"properties":{
"WriteAccount":{
"$ref":"#/components/schemas/AccountHash"
}
},
"additionalProperties":false
},
{
"description":"Writes the given DeployInfo to global state.",
"type":"object",
"required":[
"WriteDeployInfo"
],
"properties":{
"WriteDeployInfo":{
"$ref":"#/components/schemas/DeployInfo"
}
},
"additionalProperties":false
},
{
"description":"Writes the given EraInfo to global state.",
"type":"object",
"required":[
"WriteEraInfo"
],
"properties":{
"WriteEraInfo":{
"$ref":"#/components/schemas/EraInfo"
}
},
"additionalProperties":false
},
{
"description":"Writes the given Transfer to global state.",
"type":"object",
"required":[
"WriteTransfer"
],
"properties":{
"WriteTransfer":{
"$ref":"#/components/schemas/Transfer"
}
},
"additionalProperties":false
},
{
"description":"Writes the given Bid to global state.",
"type":"object",
"required":[
"WriteBid"
],
"properties":{
"WriteBid":{
"$ref":"#/components/schemas/Bid"
}
},
"additionalProperties":false
},
{
"description":"Writes the given Withdraw to global state.",
"type":"object",
"required":[
"WriteWithdraw"
],
"properties":{
"WriteWithdraw":{
"type":"array",
"items":{
"$ref":"#/components/schemas/UnbondingPurse"
}
}
},
"additionalProperties":false
},
{
"description":"Adds the given `i32`.",
"type":"object",
"required":[
"AddInt32"
],
"properties":{
"AddInt32":{
"type":"integer",
"format":"int32"
}
},
"additionalProperties":false
},
{
"description":"Adds the given `u64`.",
"type":"object",
"required":[
"AddUInt64"
],
"properties":{
"AddUInt64":{
"type":"integer",
"format":"uint64",
"minimum":0
}
},
"additionalProperties":false
},
{
"description":"Adds the given `U128`.",
"type":"object",
"required":[
"AddUInt128"
],
"properties":{
"AddUInt128":{
"$ref":"#/components/schemas/U128"
}
},
"additionalProperties":false
},
{
"description":"Adds the given `U256`.",
"type":"object",
"required":[
"AddUInt256"
],
"properties":{
"AddUInt256":{
"$ref":"#/components/schemas/U256"
}
},
"additionalProperties":false
},
{
"description":"Adds the given `U512`.",
"type":"object",
"required":[
"AddUInt512"
],
"properties":{
"AddUInt512":{
"$ref":"#/components/schemas/U512"
}
},
"additionalProperties":false
},
{
"description":"Adds the given collection of named keys.",
"type":"object",
"required":[
"AddKeys"
],
"properties":{
"AddKeys":{
"type":"array",
"items":{
"$ref":"#/components/schemas/NamedKey"
}
}
},
"additionalProperties":false
},
{
"description":"A failed transformation, containing an error message.",
"type":"object",
"required":[
"Failure"
],
"properties":{
"Failure":{
"type":"string"
}
},
"additionalProperties":false
}
]
},
"AccountHash":{
"description":"Hex-encoded account hash.",
"type":"string"
},
"DeployInfo":{
"description":"Information relating to the given Deploy.",
"type":"object",
"required":[
"deploy_hash",
"from",
"gas",
"source",
"transfers"
],
"properties":{
"deploy_hash":{
"description":"The relevant Deploy.",
"allOf":[
{
"$ref":"#/components/schemas/DeployHash"
}
]
},
"transfers":{
"description":"Transfers performed by the Deploy.",
"type":"array",
"items":{
"$ref":"#/components/schemas/TransferAddr"
}
},
"from":{
"description":"Account identifier of the creator of the Deploy.",
"allOf":[
{
"$ref":"#/components/schemas/AccountHash"
}
]
},
"source":{
"description":"Source purse used for payment of the Deploy.",
"allOf":[
{
"$ref":"#/components/schemas/URef"
}
]
},
"gas":{
"description":"Gas cost of executing the Deploy.",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
}
},
"additionalProperties":false
},
"TransferAddr":{
"description":"Hex-encoded transfer address.",
"type":"string"
},
"URef":{
"description":"Hex-encoded, formatted URef.",
"type":"string"
},
"U512":{
"description":"Decimal representation of a 512-bit integer.",
"type":"string"
},
"EraInfo":{
"description":"Auction metadata. Intended to be recorded at each era.",
"type":"object",
"required":[
"seigniorage_allocations"
],
"properties":{
"seigniorage_allocations":{
"type":"array",
"items":{
"$ref":"#/components/schemas/SeigniorageAllocation"
}
}
},
"additionalProperties":false
},
"SeigniorageAllocation":{
"description":"Information about a seigniorage allocation",
"anyOf":[
{
"description":"Info about a seigniorage allocation for a validator",
"type":"object",
"required":[
"Validator"
],
"properties":{
"Validator":{
"type":"object",
"required":[
"amount",
"validator_public_key"
],
"properties":{
"validator_public_key":{
"description":"Validator's public key",
"allOf":[
{
"$ref":"#/components/schemas/PublicKey"
}
]
},
"amount":{
"description":"Allocated amount",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
}
},
"additionalProperties":false
}
},
"additionalProperties":false
},
{
"description":"Info about a seigniorage allocation for a delegator",
"type":"object",
"required":[
"Delegator"
],
"properties":{
"Delegator":{
"type":"object",
"required":[
"amount",
"delegator_public_key",
"validator_public_key"
],
"properties":{
"delegator_public_key":{
"description":"Delegator's public key",
"allOf":[
{
"$ref":"#/components/schemas/PublicKey"
}
]
},
"validator_public_key":{
"description":"Validator's public key",
"allOf":[
{
"$ref":"#/components/schemas/PublicKey"
}
]
},
"amount":{
"description":"Allocated amount",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
}
},
"additionalProperties":false
}
},
"additionalProperties":false
}
]
},
"Transfer":{
"description":"Represents a transfer from one purse to another",
"type":"object",
"required":[
"amount",
"deploy_hash",
"from",
"gas",
"source",
"target"
],
"properties":{
"deploy_hash":{
"description":"Deploy that created the transfer",
"allOf":[
{
"$ref":"#/components/schemas/DeployHash"
}
]
},
"from":{
"description":"Account from which transfer was executed",
"allOf":[
{
"$ref":"#/components/schemas/AccountHash"
}
]
},
"to":{
"description":"Account to which funds are transferred",
"anyOf":[
{
"$ref":"#/components/schemas/AccountHash"
},
{
"type":"null"
}
]
},
"source":{
"description":"Source purse",
"allOf":[
{
"$ref":"#/components/schemas/URef"
}
]
},
"target":{
"description":"Target purse",
"allOf":[
{
"$ref":"#/components/schemas/URef"
}
]
},
"amount":{
"description":"Transfer amount",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
},
"gas":{
"description":"Gas",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
},
"id":{
"description":"User-defined id",
"type":[
"integer",
"null"
],
"format":"uint64",
"minimum":0
}
},
"additionalProperties":false
},
"Bid":{
"description":"An entry in the validator map.",
"type":"object",
"required":[
"bonding_purse",
"delegation_rate",
"delegators",
"inactive",
"staked_amount",
"validator_public_key"
],
"properties":{
"validator_public_key":{
"description":"Validator public key",
"allOf":[
{
"$ref":"#/components/schemas/PublicKey"
}
]
},
"bonding_purse":{
"description":"The purse that was used for bonding.",
"allOf":[
{
"$ref":"#/components/schemas/URef"
}
]
},
"staked_amount":{
"description":"The amount of tokens staked by a validator (not including delegators).",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
},
"delegation_rate":{
"description":"Delegation rate",
"type":"integer",
"format":"uint8",
"minimum":0
},
"vesting_schedule":{
"description":"Vesting schedule for a genesis validator. `None` if non-genesis validator.",
"anyOf":[
{
"$ref":"#/components/schemas/VestingSchedule"
},
{
"type":"null"
}
]
},
"delegators":{
"description":"This validator's delegators, indexed by their public keys",
"type":"object",
"additionalProperties":{
"$ref":"#/components/schemas/Delegator"
}
},
"inactive":{
"description":"`true` if validator has been \"evicted\"",
"type":"boolean"
}
},
"additionalProperties":false
},
"VestingSchedule":{
"type":"object",
"required":[
"initial_release_timestamp_millis"
],
"properties":{
"initial_release_timestamp_millis":{
"type":"integer",
"format":"uint64",
"minimum":0
},
"locked_amounts":{
"type":[
"array",
"null"
],
"items":{
"$ref":"#/components/schemas/U512"
},
"maxItems":14,
"minItems":14
}
},
"additionalProperties":false
},
"Delegator":{
"description":"Represents a party delegating their stake to a validator (or \"delegatee\")",
"type":"object",
"required":[
"bonding_purse",
"delegator_public_key",
"staked_amount",
"validator_public_key"
],
"properties":{
"delegator_public_key":{
"$ref":"#/components/schemas/PublicKey"
},
"staked_amount":{
"$ref":"#/components/schemas/U512"
},
"bonding_purse":{
"$ref":"#/components/schemas/URef"
},
"validator_public_key":{
"$ref":"#/components/schemas/PublicKey"
},
"vesting_schedule":{
"anyOf":[
{
"$ref":"#/components/schemas/VestingSchedule"
},
{
"type":"null"
}
]
}
},
"additionalProperties":false
},
"UnbondingPurse":{
"description":"Unbonding purse.",
"type":"object",
"required":[
"amount",
"bonding_purse",
"era_of_creation",
"unbonder_public_key",
"validator_public_key"
],
"properties":{
"bonding_purse":{
"description":"Bonding Purse",
"allOf":[
{
"$ref":"#/components/schemas/URef"
}
]
},
"validator_public_key":{
"description":"Validators public key.",
"allOf":[
{
"$ref":"#/components/schemas/PublicKey"
}
]
},
"unbonder_public_key":{
"description":"Unbonders public key.",
"allOf":[
{
"$ref":"#/components/schemas/PublicKey"
}
]
},
"era_of_creation":{
"description":"Era in which this unbonding request was created.",
"allOf":[
{
"$ref":"#/components/schemas/EraId"
}
]
},
"amount":{
"description":"Unbonding Amount.",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
}
},
"additionalProperties":false
},
"EraId":{
"description":"Era ID newtype.",
"type":"integer",
"format":"uint64",
"minimum":0
},
"U128":{
"description":"Decimal representation of a 128-bit integer.",
"type":"string"
},
"U256":{
"description":"Decimal representation of a 256-bit integer.",
"type":"string"
},
"NamedKey":{
"description":"A named key.",
"type":"object",
"required":[
"key",
"name"
],
"properties":{
"name":{
"description":"The name of the entry.",
"type":"string"
},
"key":{
"description":"The value of the entry: a casper `Key` type.",
"type":"string"
}
},
"additionalProperties":false
},
"PeersMap":{
"description":"Map of peer IDs to network addresses.",
"type":"array",
"items":{
"$ref":"#/components/schemas/PeerEntry"
}
},
"PeerEntry":{
"type":"object",
"required":[
"address",
"node_id"
],
"properties":{
"node_id":{
"type":"string"
},
"address":{
"type":"string"
}
},
"additionalProperties":false
},
"MinimalBlockInfo":{
"description":"Minimal info of a `Block`.",
"type":"object",
"required":[
"creator",
"era_id",
"hash",
"height",
"state_root_hash",
"timestamp"
],
"properties":{
"hash":{
"$ref":"#/components/schemas/BlockHash"
},
"timestamp":{
"$ref":"#/components/schemas/Timestamp"
},
"era_id":{
"$ref":"#/components/schemas/EraId"
},
"height":{
"type":"integer",
"format":"uint64",
"minimum":0
},
"state_root_hash":{
"$ref":"#/components/schemas/Digest"
},
"creator":{
"$ref":"#/components/schemas/PublicKey"
}
},
"additionalProperties":false
},
"NextUpgrade":{
"description":"Information about the next protocol upgrade.",
"type":"object",
"required":[
"activation_point",
"protocol_version"
],
"properties":{
"activation_point":{
"$ref":"#/components/schemas/ActivationPoint"
},
"protocol_version":{
"type":"string"
}
}
},
"ActivationPoint":{
"description":"The first era to which the associated protocol version applies.",
"anyOf":[
{
"$ref":"#/components/schemas/EraId"
},
{
"$ref":"#/components/schemas/Timestamp"
}
]
},
"BlockIdentifier":{
"description":"Identifier for possible ways to retrieve a block.",
"anyOf":[
{
"description":"Identify and retrieve the block with its hash.",
"type":"object",
"required":[
"Hash"
],
"properties":{
"Hash":{
"$ref":"#/components/schemas/BlockHash"
}
},
"additionalProperties":false
},
{
"description":"Identify and retrieve the block with its height.",
"type":"object",
"required":[
"Height"
],
"properties":{
"Height":{
"type":"integer",
"format":"uint64",
"minimum":0
}
},
"additionalProperties":false
}
]
},
"JsonBlock":{
"description":"A JSON-friendly representation of `Block`.",
"type":"object",
"required":[
"body",
"hash",
"header",
"proofs"
],
"properties":{
"hash":{
"$ref":"#/components/schemas/BlockHash"
},
"header":{
"$ref":"#/components/schemas/JsonBlockHeader"
},
"body":{
"$ref":"#/components/schemas/JsonBlockBody"
},
"proofs":{
"type":"array",
"items":{
"$ref":"#/components/schemas/JsonProof"
}
}
},
"additionalProperties":false
},
"JsonBlockHeader":{
"type":"object",
"required":[
"accumulated_seed",
"body_hash",
"era_id",
"height",
"parent_hash",
"protocol_version",
"random_bit",
"state_root_hash",
"timestamp"
],
"properties":{
"parent_hash":{
"$ref":"#/components/schemas/BlockHash"
},
"state_root_hash":{
"$ref":"#/components/schemas/Digest"
},
"body_hash":{
"$ref":"#/components/schemas/Digest"
},
"random_bit":{
"type":"boolean"
},
"accumulated_seed":{
"$ref":"#/components/schemas/Digest"
},
"era_end":{
"anyOf":[
{
"$ref":"#/components/schemas/JsonEraEnd"
},
{
"type":"null"
}
]
},
"timestamp":{
"$ref":"#/components/schemas/Timestamp"
},
"era_id":{
"$ref":"#/components/schemas/EraId"
},
"height":{
"type":"integer",
"format":"uint64",
"minimum":0
},
"protocol_version":{
"$ref":"#/components/schemas/ProtocolVersion"
}
},
"additionalProperties":false
},
"JsonEraEnd":{
"type":"object",
"required":[
"era_report",
"next_era_validator_weights"
],
"properties":{
"era_report":{
"$ref":"#/components/schemas/JsonEraReport"
},
"next_era_validator_weights":{
"type":"array",
"items":{
"$ref":"#/components/schemas/ValidatorWeight"
}
}
},
"additionalProperties":false
},
"JsonEraReport":{
"description":"Equivocation and reward information to be included in the terminal block.",
"type":"object",
"required":[
"equivocators",
"inactive_validators",
"rewards"
],
"properties":{
"equivocators":{
"type":"array",
"items":{
"$ref":"#/components/schemas/PublicKey"
}
},
"rewards":{
"type":"array",
"items":{
"$ref":"#/components/schemas/Reward"
}
},
"inactive_validators":{
"type":"array",
"items":{
"$ref":"#/components/schemas/PublicKey"
}
}
},
"additionalProperties":false
},
"Reward":{
"type":"object",
"required":[
"amount",
"validator"
],
"properties":{
"validator":{
"$ref":"#/components/schemas/PublicKey"
},
"amount":{
"type":"integer",
"format":"uint64",
"minimum":0
}
},
"additionalProperties":false
},
"ValidatorWeight":{
"type":"object",
"required":[
"validator",
"weight"
],
"properties":{
"validator":{
"$ref":"#/components/schemas/PublicKey"
},
"weight":{
"$ref":"#/components/schemas/U512"
}
},
"additionalProperties":false
},
"ProtocolVersion":{
"description":"Casper Platform protocol version",
"type":"string"
},
"JsonBlockBody":{
"description":"A JSON-friendly representation of `Body`",
"type":"object",
"required":[
"deploy_hashes",
"proposer",
"transfer_hashes"
],
"properties":{
"proposer":{
"$ref":"#/components/schemas/PublicKey"
},
"deploy_hashes":{
"type":"array",
"items":{
"$ref":"#/components/schemas/DeployHash"
}
},
"transfer_hashes":{
"type":"array",
"items":{
"$ref":"#/components/schemas/DeployHash"
}
}
},
"additionalProperties":false
},
"JsonProof":{
"description":"A JSON-friendly representation of a proof, i.e. a block's finality signature.",
"type":"object",
"required":[
"public_key",
"signature"
],
"properties":{
"public_key":{
"$ref":"#/components/schemas/PublicKey"
},
"signature":{
"$ref":"#/components/schemas/Signature"
}
},
"additionalProperties":false
},
"StoredValue":{
"description":"Representation of a value stored in global state.\n\n`Account`, `Contract` and `ContractPackage` have their own `json_compatibility` representations (see their docs for further info).",
"anyOf":[
{
"description":"A CasperLabs value.",
"type":"object",
"required":[
"CLValue"
],
"properties":{
"CLValue":{
"$ref":"#/components/schemas/CLValue"
}
},
"additionalProperties":false
},
{
"description":"An account.",
"type":"object",
"required":[
"Account"
],
"properties":{
"Account":{
"$ref":"#/components/schemas/Account"
}
},
"additionalProperties":false
},
{
"description":"A contract's Wasm",
"type":"object",
"required":[
"ContractWasm"
],
"properties":{
"ContractWasm":{
"type":"string"
}
},
"additionalProperties":false
},
{
"description":"Methods and type signatures supported by a contract.",
"type":"object",
"required":[
"Contract"
],
"properties":{
"Contract":{
"$ref":"#/components/schemas/Contract"
}
},
"additionalProperties":false
},
{
"description":"A contract definition, metadata, and security container.",
"type":"object",
"required":[
"ContractPackage"
],
"properties":{
"ContractPackage":{
"$ref":"#/components/schemas/ContractPackage"
}
},
"additionalProperties":false
},
{
"description":"A record of a transfer",
"type":"object",
"required":[
"Transfer"
],
"properties":{
"Transfer":{
"$ref":"#/components/schemas/Transfer"
}
},
"additionalProperties":false
},
{
"description":"A record of a deploy",
"type":"object",
"required":[
"DeployInfo"
],
"properties":{
"DeployInfo":{
"$ref":"#/components/schemas/DeployInfo"
}
},
"additionalProperties":false
},
{
"description":"Auction metadata",
"type":"object",
"required":[
"EraInfo"
],
"properties":{
"EraInfo":{
"$ref":"#/components/schemas/EraInfo"
}
},
"additionalProperties":false
},
{
"description":"A bid",
"type":"object",
"required":[
"Bid"
],
"properties":{
"Bid":{
"$ref":"#/components/schemas/Bid"
}
},
"additionalProperties":false
},
{
"description":"A withdraw",
"type":"object",
"required":[
"Withdraw"
],
"properties":{
"Withdraw":{
"type":"array",
"items":{
"$ref":"#/components/schemas/UnbondingPurse"
}
}
},
"additionalProperties":false
}
]
},
"Account":{
"description":"Structure representing a user's account, stored in global state.",
"type":"object",
"required":[
"account_hash",
"action_thresholds",
"associated_keys",
"main_purse",
"named_keys"
],
"properties":{
"account_hash":{
"$ref":"#/components/schemas/AccountHash"
},
"named_keys":{
"type":"array",
"items":{
"$ref":"#/components/schemas/NamedKey"
}
},
"main_purse":{
"$ref":"#/components/schemas/URef"
},
"associated_keys":{
"type":"array",
"items":{
"$ref":"#/components/schemas/AssociatedKey"
}
},
"action_thresholds":{
"$ref":"#/components/schemas/ActionThresholds"
}
},
"additionalProperties":false
},
"AssociatedKey":{
"type":"object",
"required":[
"account_hash",
"weight"
],
"properties":{
"account_hash":{
"$ref":"#/components/schemas/AccountHash"
},
"weight":{
"type":"integer",
"format":"uint8",
"minimum":0
}
},
"additionalProperties":false
},
"ActionThresholds":{
"description":"Thresholds that have to be met when executing an action of a certain type.",
"type":"object",
"required":[
"deployment",
"key_management"
],
"properties":{
"deployment":{
"type":"integer",
"format":"uint8",
"minimum":0
},
"key_management":{
"type":"integer",
"format":"uint8",
"minimum":0
}
},
"additionalProperties":false
},
"Contract":{
"description":"A contract struct that can be serialized as JSON object.",
"type":"object",
"required":[
"contract_package_hash",
"contract_wasm_hash",
"entry_points",
"named_keys",
"protocol_version"
],
"properties":{
"contract_package_hash":{
"$ref":"#/components/schemas/ContractPackageHash"
},
"contract_wasm_hash":{
"$ref":"#/components/schemas/ContractWasmHash"
},
"named_keys":{
"type":"array",
"items":{
"$ref":"#/components/schemas/NamedKey"
}
},
"entry_points":{
"type":"array",
"items":{
"$ref":"#/components/schemas/EntryPoint"
}
},
"protocol_version":{
"type":"string"
}
},
"additionalProperties":false
},
"ContractPackageHash":{
"description":"The hash address of the contract package",
"type":"string"
},
"ContractWasmHash":{
"description":"The hash address of the contract wasm",
"type":"string"
},
"EntryPoint":{
"description":"Type signature of a method. Order of arguments matter since can be referenced by index as well as name.",
"type":"object",
"required":[
"access",
"args",
"entry_point_type",
"name",
"ret"
],
"properties":{
"name":{
"type":"string"
},
"args":{
"type":"array",
"items":{
"$ref":"#/components/schemas/Parameter"
}
},
"ret":{
"$ref":"#/components/schemas/CLType"
},
"access":{
"$ref":"#/components/schemas/EntryPointAccess"
},
"entry_point_type":{
"$ref":"#/components/schemas/EntryPointType"
}
}
},
"Parameter":{
"description":"Parameter to a method",
"type":"object",
"required":[
"cl_type",
"name"
],
"properties":{
"name":{
"type":"string"
},
"cl_type":{
"$ref":"#/components/schemas/CLType"
}
}
},
"EntryPointAccess":{
"description":"Enum describing the possible access control options for a contract entry point (method).",
"anyOf":[
{
"type":"string",
"enum":[
"Public"
]
},
{
"description":"Only users from the listed groups may call this method. Note: if the list is empty then this method is not callable from outside the contract.",
"type":"object",
"required":[
"Groups"
],
"properties":{
"Groups":{
"type":"array",
"items":{
"$ref":"#/components/schemas/Group"
}
}
},
"additionalProperties":false
}
]
},
"Group":{
"description":"A (labelled) \"user group\". Each method of a versioned contract may be assoicated with one or more user groups which are allowed to call it.",
"type":"string"
},
"EntryPointType":{
"description":"Context of method execution",
"type":"string",
"enum":[
"Session",
"Contract"
]
},
"ContractPackage":{
"description":"Contract definition, metadata, and security container.",
"type":"object",
"required":[
"access_key",
"disabled_versions",
"groups",
"versions"
],
"properties":{
"access_key":{
"$ref":"#/components/schemas/URef"
},
"versions":{
"type":"array",
"items":{
"$ref":"#/components/schemas/ContractVersion"
}
},
"disabled_versions":{
"type":"array",
"items":{
"$ref":"#/components/schemas/DisabledVersion"
}
},
"groups":{
"type":"array",
"items":{
"$ref":"#/components/schemas/Groups"
}
}
},
"additionalProperties":false
},
"ContractVersion":{
"type":"object",
"required":[
"contract_hash",
"contract_version",
"protocol_version_major"
],
"properties":{
"protocol_version_major":{
"type":"integer",
"format":"uint32",
"minimum":0
},
"contract_version":{
"type":"integer",
"format":"uint32",
"minimum":0
},
"contract_hash":{
"$ref":"#/components/schemas/ContractHash"
}
}
},
"ContractHash":{
"description":"The hash address of the contract",
"type":"string"
},
"DisabledVersion":{
"type":"object",
"required":[
"contract_version",
"protocol_version_major"
],
"properties":{
"protocol_version_major":{
"type":"integer",
"format":"uint32",
"minimum":0
},
"contract_version":{
"type":"integer",
"format":"uint32",
"minimum":0
}
}
},
"Groups":{
"type":"object",
"required":[
"group",
"keys"
],
"properties":{
"group":{
"type":"string"
},
"keys":{
"type":"array",
"items":{
"$ref":"#/components/schemas/URef"
}
}
}
},
"EraSummary":{
"description":"The summary of an era",
"type":"object",
"required":[
"block_hash",
"era_id",
"merkle_proof",
"state_root_hash",
"stored_value"
],
"properties":{
"block_hash":{
"description":"The block hash",
"allOf":[
{
"$ref":"#/components/schemas/BlockHash"
}
]
},
"era_id":{
"description":"The era id",
"allOf":[
{
"$ref":"#/components/schemas/EraId"
}
]
},
"stored_value":{
"description":"The StoredValue containing era information",
"allOf":[
{
"$ref":"#/components/schemas/StoredValue"
}
]
},
"state_root_hash":{
"description":"Hex-encoded hash of the state root",
"allOf":[
{
"$ref":"#/components/schemas/Digest"
}
]
},
"merkle_proof":{
"description":"The merkle proof",
"type":"string"
}
},
"additionalProperties":false
},
"AuctionState":{
"description":"Data structure summarizing auction contract data.",
"type":"object",
"required":[
"bids",
"block_height",
"era_validators",
"state_root_hash"
],
"properties":{
"state_root_hash":{
"description":"Global state hash.",
"allOf":[
{
"$ref":"#/components/schemas/Digest"
}
]
},
"block_height":{
"description":"Block height.",
"type":"integer",
"format":"uint64",
"minimum":0
},
"era_validators":{
"description":"Era validators.",
"type":"array",
"items":{
"$ref":"#/components/schemas/JsonEraValidators"
}
},
"bids":{
"description":"All bids contained within a vector.",
"type":"array",
"items":{
"$ref":"#/components/schemas/JsonBids"
}
}
},
"additionalProperties":false
},
"JsonEraValidators":{
"description":"The validators for the given era.",
"type":"object",
"required":[
"era_id",
"validator_weights"
],
"properties":{
"era_id":{
"$ref":"#/components/schemas/EraId"
},
"validator_weights":{
"type":"array",
"items":{
"$ref":"#/components/schemas/JsonValidatorWeights"
}
}
},
"additionalProperties":false
},
"JsonValidatorWeights":{
"description":"A validator's weight.",
"type":"object",
"required":[
"public_key",
"weight"
],
"properties":{
"public_key":{
"$ref":"#/components/schemas/PublicKey"
},
"weight":{
"$ref":"#/components/schemas/U512"
}
},
"additionalProperties":false
},
"JsonBids":{
"description":"A Json representation of a single bid.",
"type":"object",
"required":[
"bid",
"public_key"
],
"properties":{
"public_key":{
"$ref":"#/components/schemas/PublicKey"
},
"bid":{
"$ref":"#/components/schemas/JsonBid"
}
},
"additionalProperties":false
},
"JsonBid":{
"description":"An entry in a founding validator map representing a bid.",
"type":"object",
"required":[
"bonding_purse",
"delegation_rate",
"delegators",
"inactive",
"staked_amount"
],
"properties":{
"bonding_purse":{
"description":"The purse that was used for bonding.",
"allOf":[
{
"$ref":"#/components/schemas/URef"
}
]
},
"staked_amount":{
"description":"The amount of tokens staked by a validator (not including delegators).",
"allOf":[
{
"$ref":"#/components/schemas/U512"
}
]
},
"delegation_rate":{
"description":"The delegation rate.",
"type":"integer",
"format":"uint8",
"minimum":0
},
"delegators":{
"description":"The delegators.",
"type":"array",
"items":{
"$ref":"#/components/schemas/JsonDelegator"
}
},
"inactive":{
"description":"Is this an inactive validator.",
"type":"boolean"
}
},
"additionalProperties":false
},
"JsonDelegator":{
"description":"A delegator associated with the given validator.",
"type":"object",
"required":[
"bonding_purse",
"delegatee",
"public_key",
"staked_amount"
],
"properties":{
"public_key":{
"$ref":"#/components/schemas/PublicKey"
},
"staked_amount":{
"$ref":"#/components/schemas/U512"
},
"bonding_purse":{
"$ref":"#/components/schemas/URef"
},
"delegatee":{
"$ref":"#/components/schemas/PublicKey"
}
},
"additionalProperties":false
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment