From 074d1426778ddafd008ee587c760d5506e27794d Mon Sep 17 00:00:00 2001 From: Ss Date: Fri, 8 Oct 2021 02:55:56 +1100 Subject: [PATCH 1/2] Added new methods in the Query Service and CasperSdk corresponding to the functionality required in Casper Integrations. --- build.gradle | 16 + src/main/java/com/casper/sdk/Properties.java | 5 + .../com/casper/sdk/controller/CasperSdk.java | 20 + .../com/casper/sdk/service/MethodEnums.java | 55 ++ .../com/casper/sdk/service/QueryService.java | 59 +- .../java/com/casper/sdk/TestQueryService.java | 83 +++ .../method-json/chain_get_block.json | 429 ++++++++++++++ .../chain_get_block_transfers.json | 20 + .../chain_get_era_info_by_switch_block.json | 553 ++++++++++++++++++ .../method-json/info_get_deploy.json | 207 +++++++ 10 files changed, 1444 insertions(+), 3 deletions(-) create mode 100644 src/test/resources/method-json/chain_get_block.json create mode 100644 src/test/resources/method-json/chain_get_block_transfers.json create mode 100644 src/test/resources/method-json/chain_get_era_info_by_switch_block.json create mode 100644 src/test/resources/method-json/info_get_deploy.json diff --git a/build.gradle b/build.gradle index 63721ad..15510a6 100644 --- a/build.gradle +++ b/build.gradle @@ -63,6 +63,22 @@ task casperJar(type: Jar) { with jar } +task casperFatJar(type: Jar) { + archiveBaseName = 'casper-java-sdk' + archiveVersion = '0.3.0' + manifest.from jar.manifest + archiveClassifier = 'all' + from { + configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } + } { + exclude "META-INF/*.SF" + exclude "META-INF/*.DSA" + exclude "META-INF/*.RSA" + } + with jar +} + + test { useJUnitPlatform() } diff --git a/src/main/java/com/casper/sdk/Properties.java b/src/main/java/com/casper/sdk/Properties.java index 6ca09e3..394b166 100644 --- a/src/main/java/com/casper/sdk/Properties.java +++ b/src/main/java/com/casper/sdk/Properties.java @@ -14,6 +14,11 @@ public class Properties { public static String STATE_GET_AUCTION_INFO = "state_get_auction_info"; public static String INFO_GET_PEERS = "info_get_peers"; public static String INFO_GET_STATUS = "info_get_status"; + public static String INFO_GET_DEPLOY = "info_get_deploy"; + public static String CHAIN_GET_BLOCK = "chain_get_block"; + public static String CHAIN_GET_BLOCK_TRANSFERS = "chain_get_block_transfers"; + public static String CHAIN_GET_ERA_INFO_BY_SWITCH_BLOCK = "chain_get_era_info_by_switch_block"; + public static String RPC_DISCOVER = "rpc.discover"; public static Map properties = new HashMap<>(); diff --git a/src/main/java/com/casper/sdk/controller/CasperSdk.java b/src/main/java/com/casper/sdk/controller/CasperSdk.java index 667028e..032b26b 100644 --- a/src/main/java/com/casper/sdk/controller/CasperSdk.java +++ b/src/main/java/com/casper/sdk/controller/CasperSdk.java @@ -53,4 +53,24 @@ public String getNodePeers() throws Throwable { return queryService.getNodePeers(); } + public String getBlock() throws Throwable { + return queryService.getBlock(); + } + + public String getBlockTransfers() throws Throwable { + return queryService.getBlockTransfers(); + } + + public String getDeployInfo(final String deployHash) throws Throwable { + return queryService.getDeployInfo(deployHash); + } + + public String getEraInfoBySwitchBlock() throws Throwable { + return queryService.getEraInfoBySwitchBlock(); + } + + public String getRpcSchema() throws Throwable { + return queryService.getRpcSchema(); + } + } diff --git a/src/main/java/com/casper/sdk/service/MethodEnums.java b/src/main/java/com/casper/sdk/service/MethodEnums.java index 1ba01a0..ce51431 100644 --- a/src/main/java/com/casper/sdk/service/MethodEnums.java +++ b/src/main/java/com/casper/sdk/service/MethodEnums.java @@ -17,6 +17,7 @@ public enum MethodEnums { @Override public String getValue(final String result) throws ValueNotFoundException { try{ + System.out.println(result); final JsonNode node = new ObjectMapper().readTree(result); return node.get("result").get("state_root_hash").textValue(); } catch (Exception e){ @@ -78,6 +79,60 @@ public String getValue(final String result) throws ValueNotFoundException { throw new ValueNotFoundException("result not found"); } } + }, + CHAIN_GET_BLOCK{ + @Override + public String getValue(final String result) throws ValueNotFoundException { + try{ + final JsonNode node = new ObjectMapper().readTree(result); + return node.get("result").toPrettyString(); + } catch (Exception e){ + throw new ValueNotFoundException("result not found"); + } + } + },CHAIN_GET_BLOCK_TRANSFERS{ + @Override + public String getValue(final String result) throws ValueNotFoundException { + try{ + final JsonNode node = new ObjectMapper().readTree(result); + return node.get("result").toPrettyString(); + } catch (Exception e){ + throw new ValueNotFoundException("result not found"); + } + } + },INFO_GET_DEPLOY{ + @Override + public String getValue(final String result) throws ValueNotFoundException { + try{ + System.out.println(result); + final JsonNode node = new ObjectMapper().readTree(result); + return node.get("result").toPrettyString(); + } catch (Exception e){ + throw new ValueNotFoundException("result not found"); + } + } + },CHAIN_GET_ERA_INFO_BY_SWITCH_BLOCK{ + @Override + public String getValue(final String result) throws ValueNotFoundException { + try{ + System.out.println(result); + final JsonNode node = new ObjectMapper().readTree(result); + return node.get("result").toPrettyString(); + } catch (Exception e){ + throw new ValueNotFoundException("result not found"); + } + } + },RPC_DISCOVER { + @Override + public String getValue(final String result) throws ValueNotFoundException { + try { + System.out.println(result); + final JsonNode node = new ObjectMapper().readTree(result); + return node.get("result").toPrettyString(); + } catch (Exception e) { + throw new ValueNotFoundException("result not found"); + } + } }; private static final List MAP = new ArrayList<>(); diff --git a/src/main/java/com/casper/sdk/service/QueryService.java b/src/main/java/com/casper/sdk/service/QueryService.java index 62961ac..a3cd222 100644 --- a/src/main/java/com/casper/sdk/service/QueryService.java +++ b/src/main/java/com/casper/sdk/service/QueryService.java @@ -1,7 +1,5 @@ package com.casper.sdk.service; -import static com.casper.sdk.Properties.*; - import com.casper.sdk.service.http.rpc.HttpMethods; import com.casper.sdk.service.http.rpc.Method; @@ -9,6 +7,8 @@ import java.util.HashMap; import java.util.Optional; +import static com.casper.sdk.Properties.*; + /** * Service to query the chain * Methods call the HTTP methods with an instantiated method object @@ -62,7 +62,8 @@ public String getAccountBalance(final String accountKey) throws Throwable { public String getAccountMainPurseURef(final String accountKey) throws Throwable { final Optional result = httpMethods.rpcCallMethod(new Method(STATE_GET_ITEM, - new HashMap<>() { { + new HashMap<>() { + { put("state_root_hash", getStateRootHash()); put("key", "account-hash-" + HashService.getAccountHash(accountKey)); put("path", Collections.emptyList()); @@ -104,5 +105,57 @@ public String getNodeStatus() throws Throwable { } + public String getBlock() throws Throwable { + + final Optional result = httpMethods.rpcCallMethod(new Method(CHAIN_GET_BLOCK, + new HashMap<>())); + + return (result.isEmpty()) ? null + : MethodEnums.CHAIN_GET_BLOCK.getValue(result.get()); + + } + + public String getBlockTransfers() throws Throwable { + + final Optional result = httpMethods.rpcCallMethod(new Method(CHAIN_GET_BLOCK_TRANSFERS, + new HashMap<>())); + + return (result.isEmpty()) ? null + : MethodEnums.CHAIN_GET_BLOCK_TRANSFERS.getValue(result.get()); + + } + + public String getDeployInfo(String deployHash) throws Throwable { + + final Optional result = httpMethods.rpcCallMethod(new Method(INFO_GET_DEPLOY, + new HashMap<>() { + { + put("deploy_hash", deployHash); + } + })); + + return (result.isEmpty()) ? null + : MethodEnums.INFO_GET_DEPLOY.getValue(result.get()); + + } + + public String getEraInfoBySwitchBlock() throws Throwable { + + final Optional result = httpMethods.rpcCallMethod(new Method(CHAIN_GET_ERA_INFO_BY_SWITCH_BLOCK, + new HashMap<>())); + return (result.isEmpty()) ? null + : MethodEnums.CHAIN_GET_ERA_INFO_BY_SWITCH_BLOCK.getValue(result.get()); + + } + + public String getRpcSchema() throws Throwable { + + final Optional result = httpMethods.rpcCallMethod(new Method(RPC_DISCOVER, + new HashMap<>())); + + return (result.isEmpty()) ? null + : MethodEnums.RPC_DISCOVER.getValue(result.get()); + + } } diff --git a/src/test/java/com/casper/sdk/TestQueryService.java b/src/test/java/com/casper/sdk/TestQueryService.java index 09137ba..4c62df4 100644 --- a/src/test/java/com/casper/sdk/TestQueryService.java +++ b/src/test/java/com/casper/sdk/TestQueryService.java @@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import com.casper.sdk.service.QueryService; import com.fasterxml.jackson.databind.JsonNode; @@ -136,6 +137,78 @@ public void testGetNodeStatus() throws Throwable { } + @Test + public void testGetBlock() throws Throwable { + + Properties.properties.put("node-url", url); + Properties.properties.put("node-port", String.valueOf(mockBackEnd.getPort())); + + mockBackEnd.setDispatcher( + new MethodDispatcher()); + + String block = query.getBlock(); + assertNotNull(block); + + } + + @Test + public void testGetBlockTransfers() throws Throwable { + + Properties.properties.put("node-url", url); + Properties.properties.put("node-port", String.valueOf(mockBackEnd.getPort())); + + mockBackEnd.setDispatcher( + new MethodDispatcher()); + + String blockTransfers = query.getBlockTransfers(); + assertNotNull(blockTransfers); + + } + + @Test + public void testGetEraInfoBySwitchBlock() throws Throwable { + + Properties.properties.put("node-url", url); + Properties.properties.put("node-port", String.valueOf(mockBackEnd.getPort())); + + mockBackEnd.setDispatcher( + new MethodDispatcher()); + + String eraInfoBySwitchBlock = query.getEraInfoBySwitchBlock(); + assertNotNull(eraInfoBySwitchBlock); + + } + + @Test + public void testGetDeployInfo() throws Throwable { + + Properties.properties.put("node-url", url); + Properties.properties.put("node-port", String.valueOf(mockBackEnd.getPort())); + + String deployHash = "6c4048f8ebd40a160e9df47e73680eda8ae8430309a9566655bb357a5967276b"; + + mockBackEnd.setDispatcher( + new MethodDispatcher()); + + String deployInfo = query.getDeployInfo(deployHash); + assertNotNull(deployInfo); + + } + + @Test + public void testGetRpcSchema() throws Throwable { + + Properties.properties.put("node-url", url); + Properties.properties.put("node-port", String.valueOf(mockBackEnd.getPort())); + + mockBackEnd.setDispatcher( + new MethodDispatcher()); + + String rpcSchema = query.getRpcSchema(); + assertNotNull(rpcSchema); + + } + private static final class MethodDispatcher extends Dispatcher{ @@ -159,6 +232,16 @@ public MockResponse dispatch(RecordedRequest request) { responseBodyFile = "method-json/info_get_peers.json"; } else if (request.getBody().toString().contains("info_get_status")){ responseBodyFile = "method-json/info_get_status.json"; + } else if (request.getBody().toString().contains("chain_get_block")){ + responseBodyFile = "method-json/chain_get_block.json"; + } else if (request.getBody().toString().contains("chain_get_block_transfers")){ + responseBodyFile = "method-json/chain_get_block_transfers.json"; + } else if (request.getBody().toString().contains("chain_get_era_info_by_switch_b")){ + responseBodyFile = "method-json/chain_get_era_info_by_switch_block.json"; + } else if (request.getBody().toString().contains("info_get_deploy")){ + responseBodyFile = "method-json/info_get_deploy.json"; + } else if (request.getBody().toString().contains("rpc.discover")){ + responseBodyFile = "method-json/rpc_discover.json"; } return new MockResponse().setResponseCode(200) diff --git a/src/test/resources/method-json/chain_get_block.json b/src/test/resources/method-json/chain_get_block.json new file mode 100644 index 0000000..a90cd2e --- /dev/null +++ b/src/test/resources/method-json/chain_get_block.json @@ -0,0 +1,429 @@ +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "api_version": "1.1.0", + "block": { + "hash": "b87508a6c867647137b825775134a6928dc4008689d67dad2e1cc3d62170774e", + "header": { + "parent_hash": "e898a05e87b0266dc501479f2365f4e6092ae8fd539d5f2c79b8225d6850222e", + "state_root_hash": "51c24b09b7574e4e1dcb0599cd3a80e65db098283bcb0398523488a45b68efc8", + "body_hash": "2b475c3a4e2e7c443ce4d72e1fc5b2de75e471a30dbb2563ae9d614faa8ab2a4", + "random_bit": false, + "accumulated_seed": "5f4d41530a3920d89dede58635d7acead84c4265e55114750873e31e72de0082", + "era_end": null, + "timestamp": "2021-05-01T22:44:43.136Z", + "era_id": 273, + "height": 20612, + "protocol_version": "1.1.0" + }, + "body": { + "proposer": "0144e35abc4886168a53338539a8a3649ab1257d9f0c235ce38961624a025d40dd", + "deploy_hashes": [], + "transfer_hashes": [] + }, + "proofs": [ + { + "public_key": "0105220d6629f6ef4484e2da5f58b6222832af8cabba4fbd7f1ad55e84a06ab319", + "signature": "01a4b5d1ea606d2ea89bb0085b1fc1084f59dfb9d64fecb76ab3b66c8ec4ddf69ef448965f906780d89ceb602d0961fe7faccfebd76747f6a684ebdcf3de0e9b01" + }, + { + "public_key": "010599781cc7010542d5dbd3124396712bf3ec8dbac3c3b41118f19b38d1228693", + "signature": "01186ebfd0b6419f33a9557488ea7956d016e51d2e5338517c846c7a33d7ccac3092ef7591713cb10f12313825e98e479679eb3093ad4a83bd84d51fa614d2d008" + }, + { + "public_key": "0105e2c338d31db049db93012f9a158993c0f5e330bf6c71ac38c165b1047af511", + "signature": "01dd6ec007f5f6d533b25e37134a56dc8da80cfc7801d757e021e96d689b474c15915a04c595ac6e00e73c2cdc1a4782bd96682785c5a5e01e4c2b2b038ac81001" + }, + { + "public_key": "0106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca", + "signature": "01aafe9d07e6a68c4237599f62256ef9d40a4006fead38bbf53a356636874a72956d7c1d036f201b158de2e03cf876f006d8cefc9fbd1691df3879e9292b081c05" + }, + { + "public_key": "01074597a876bc3af182c41990cc5752a1ceba49ef82c455ff9051f932d96af6b4", + "signature": "0160f12005daf02060ef1f03928960db68b8d2501e25569f56a884feb6890c7c8e7ab31e6c0cd0472de33fa5d4633dead40469262357e4af29eaede424f2288702" + }, + { + "public_key": "0107cba5b4826a87ddbe0ba8cda8064881b75882f05094c1a5f95e957512a3450e", + "signature": "010ca66b4aa5373f980f82398b94fe288da4f06520619eb4a0c33b087a013354b38092fb9458301315ed33f5879cf28d877d0eb21b718eb2c1efcf706ec3ec7c01" + }, + { + "public_key": "010b0f958cae89f265d7585f8abc67639fd68f9764390682801c744b0e126fb9b3", + "signature": "01c16a5f4d21a6e4374137f1321d9fba1a88bbda085b749e99ddf1c71b8a81dfa6c0ae1cd1d757e2335f602eff83f857e65cc88b52a78d328e6fdffbc312a9140a" + }, + { + "public_key": "010ee608c883a521ab5f1771651a3f85f81efb18eea5117e6301b2a151b4766c9c", + "signature": "016531710c45a8e88f7b60ba0b2788355ef87a02936742ce6d97e0874f709471c3b046b59c8ce6653b07eb1f96949c8be258d8c523df85e680a48b76b9375d000b" + }, + { + "public_key": "01101ef8635fb189ae3c734ca699dcbb97f7f844b9b96f260642a734b85d4c1c85", + "signature": "01809f4796dece62cd4fcd42305a5de08cf26137c6d34249ea09ba3c8a94c26d7aad47c50cb8cb3d9164fcc205b26f2273d8acbebcc52c2f322c3197f0ee2c5e00" + }, + { + "public_key": "0112357f15cf6461a772978c6fc72d93bc10c1abda3a85ee7b7feb593c785b95be", + "signature": "01736a0910dcc676e5d601bfadf089617b8ee063a776b4899ada198244ada392dbdb2223543636d67ff2cb5c0d96e06948d240e953544cc3a4bb75949fb1ed850e" + }, + { + "public_key": "011752f095ee6d2902540ea4fafd649da4b7b0c2a6e38176fb7f661a0e463d43b4", + "signature": "01239ee4a33a252d059ee65426631aa2ea20a91e1d129fbfbe8867abe2cef74074ef2d3ec5cce3ceb1823aea6d54165348175568458656504bc29eefe0a0e9a507" + }, + { + "public_key": "011813bd359421f7acf1ea0c17901727544bac87a5b4489836c83ed5ef68eee39b", + "signature": "01a0e0912f5182d6d79fa8f1673f0ac5ceb6d122917fb666798e932d55afbd93dac12364f49ce4087a3235d8e1bcc7c40c2ea1c76ec158af1ac5d353ad7016a40a" + }, + { + "public_key": "011a65da6d839ecf30e4ef24952ee84125f7a955291cd752324ea44a98b65c7614", + "signature": "01bdced63f01e78d80d564fcb1722df19f62732d9a007bb66882555877ef37471b4695c81f3e9ef736edca1498ee1e5239354ed87421a2edcf1c388177af19d50c" + }, + { + "public_key": "011bb356b5af429f397bc5b0fbc71bb2b2384d6253b7f3cda92db8758dbdc4c728", + "signature": "01fca99305763fa888824e99f8e7b04029464c475dc01a4fbaf7e94a436fb3a544ed24e286271c25c16f691d7ed160bb7de8d48c91ecfab15ac1003f526abc0d07" + }, + { + "public_key": "011f290fb7cc707728c3ab3d4ab1b4989b56e0ddb322859e062b231aed18728328", + "signature": "01bec2177fca40b2377892703f1c7497d8b01eb3016c5e663bf4eb666b9e0a8f1757e2c9399e16995f96627d1cd31ecb162a6994a78b70c872cab2ddf6d555cc0a" + }, + { + "public_key": "0122f8d85b44cc2daee730c2afa97cdd6d0b46a9e132dd18292e39f8193b24d037", + "signature": "01d74674f020da09756353efa0e30879755c007e9f8baad92196ca5db934d0158884b4b6ec460df2c86f94018d91df177ac5bc13906dc36589f3f39d91c206ff04" + }, + { + "public_key": "0124aa3964bcd0ba9911594322a534e18e36e0c2e149b148e615505316733599af", + "signature": "01c38e7fd71cb77d328a247863b82f90d07894347c9505c5225ca7bfae446d41aac0f3603b3984d44d2b4b3510af7542fb5f539a75029c94eaa38ccd53fe97d602" + }, + { + "public_key": "0124bc9f7cc9f53a34c79d7ab94f2926c7ad368ca8bcd11b2142f01a005526d2c5", + "signature": "01e6e79ee3915375a086cfc9795178b5ab4505c108e554a7df75ce1e6625a6ee90835bb8d2a7ce4122bc40a57333c07c14b3ab7c635f98dfbc638d69fe682f2a02" + }, + { + "public_key": "0125a1d61bbeb09579e5e9c2126eabfdbbce3f061251496e3674e7bf0cf2587cbb", + "signature": "0113e8d815011819367c9a24b1cd28381f02d9981bfc7c7d6e9e3d4ee03fe883e8415f5c423365f6bd5cb310c1b94262f952d122ff5c6aeeb9d9dfa07ebb3e4e0c" + }, + { + "public_key": "01267447c9ac87b4330ed3395db95efbba78394533666f29a56e8a1ec7b31abbd4", + "signature": "01b5870f618b4d8aee61baf0797109b409e282a91bf6cda1ce3ccbcdc8944a2d037d83d6f768bc59f96fe33d514cee948c766cd924620bed5d9fbb82b4cd1b7a07" + }, + { + "public_key": "01295693ba2b3822ed5d4bf06bd74858c4e3638cb17078f16781f25c1f92d34bdc", + "signature": "01c4106d77d8dac3f57f389f61143d0fcb23a4ddb6f5566d4a31140776c4559077706b84ac6eec31bd0469212220d09efedb09e1a9ed8fce9df7e8493da468dd0a" + }, + { + "public_key": "012b77bfab443aae5957d4d2d4991e55f692fa3eb56c2ac1179a188881a575292a", + "signature": "01b0b6cc6e60b0ac0e374cdeb8a9a1db5f7df2116e0a4ad59f81bcfdd1bd2298f7f59cf53d4194148937a9db6262fceb95814187791e9291c14fa82457d620610c" + }, + { + "public_key": "01318f3ec2216ff82ae0091056857e6b4acc90781f74ceb1a48c7a0d08031561a7", + "signature": "01362603e1107e445d39cea64c0bb5b65dba2a751de3137d4be4791aba350f5487a6e06567aa6e6b91c87b12148057ba3a12e65aa1cc6b1c7520ef35cb8cb08b03" + }, + { + "public_key": "0133ec9af637013c599612f57e10e544af55a43d80b27cc8c6615fe95c8842772f", + "signature": "01e64881f857d23a31991a0caca043d4f7df74aaa963922db009aee9077a53555613b65c21e89305d0e0e04700e63df2e1dc8b59a483f2902160a91d4d0428dd0d" + }, + { + "public_key": "0135251e59c6f01800c51c4961ef37ebd34575e28c0942fdffd2ea34b09c54f86a", + "signature": "0181002d54d5ac21fcdd11339d54a4a07d16178fb032fef168596baae9f8f0e64b9003b83ed8b740cb0a4a57289234ec5a01546e19f533067a267824776dcee901" + }, + { + "public_key": "013941026c5347ca9eb6ddfdad57d2c305c21108b2f3d97a6bb6e52440a1be9664", + "signature": "01921286bb6e72eecf4f58d7520cdef2c4b8c70a4528c8dd76060d9fdd1e38a9fb9f2e65b6dd584b6bcd05ebf8ec42b013c6b2378bbd7acf272ee910c0372e9f09" + }, + { + "public_key": "013cf6d30266728538302eb8130b2336d1caca61240c25c362c99a894fd0b43507", + "signature": "017f69ee2dc2e1d528f78ed32f6d2d6fe2e85290831345b1f25dddf6b929a1a19e9994b912d806f87cf2ea116abd5bfea81b02c94a0536098993304d566b8f4c06" + }, + { + "public_key": "013dfb779f0677436c775b38f47283cd7e462f2a8ceba2a2cec6ed00a0e8aa6bfc", + "signature": "01257e992ea57699fc9101a4f9a40f3655eaa568f9fc73c098c0bfadb452e70c1043222a5ffd191e6e3332e628d710cf8774816208eefe493822f9fa19f6b0b505" + }, + { + "public_key": "013e5702e929292627c1cde4e4e88c4e30e4e183a84b1f979ff2a5344ac6730340", + "signature": "01b579c85a3302e63f369e62f637cbb502ea6777ad352ae376d04e807c28a34b4200b980f3a843d5e140298befe8a8bdd8b12ada17de0111db2db3f53835aab408" + }, + { + "public_key": "01422b1c5ed6a39ca2901f7ead65b0b2226df337fdfde53ffc0a0d5ec2aad12181", + "signature": "0153538aaa85c58069b4e7a71640522d84e95d4df53a479c881435a9b078bd752d066b6d36444a1b2f2e4f3c456e735c76cbd557241049d30c3ede9089a461960f" + }, + { + "public_key": "0143147a8a4628eb45e906d8ab547fdef21e811bac12468e506e54724606498eab", + "signature": "011e6a47704bcda35c37358921fc810840c0101125bfa0a6740e66739ef0cd2f5056a9e060c712491edbac6a77d87c43811b3cc6de4bbbfa1660ebb97c8f67f604" + }, + { + "public_key": "01441a29bf25836949a0498cb1aa22ec7239f5221c6f291931368cddf8f740ce1b", + "signature": "014b4326ff2b7a6ae29c71db65597200aeeb0c5cb8d4fe5d771b761047be6840d1893ae2b751d09b91ec98aff128ef7e50ab06c12366c16fc6edbacdb46c433f00" + }, + { + "public_key": "0144e35abc4886168a53338539a8a3649ab1257d9f0c235ce38961624a025d40dd", + "signature": "0153b94818ac80299a498127f37c24692688d44d2a6d9a29a120f3ccfe9def0b087d804ea8a93fc9f1bbb65b11700e45fccad5b40c51bc66d03c8bdcf486867d0f" + }, + { + "public_key": "0146c61d107ffb32738fdbb837213b240bf872536f326465642e467fe6884e7cdc", + "signature": "015272f8accc5c27ec3fe755740d73548265126f765cbb0b93e851982a4f355c588690b15db530f14ba2c7d83c770bcf83bdee7ae038cb96f4beab12ae0daa0504" + }, + { + "public_key": "014879b8cf7f459939fed0ca762ae21cba6b2651f256c2c16e35b24ca1b82ad2e5", + "signature": "01c4a88d08f252e3791b6333c06a52dc62c617041433c6ac257f21d982879cf114b440d737b248ce205e10097e1fd4b2a4842617119010db0cb6ccd2bcd2507f07" + }, + { + "public_key": "014909d0c0190dea82a8a30ea073f7c1f785ecfdc773f2c4abbb37b2727a884e93", + "signature": "016622f6af63f28dbc3e95f954731cec034d324e2ea2a6d2fadd2cd4543dc1bea69effef22ef010387b0343d90a662e73d81ac82aa5667ee61f91cb3b73bfc6c05" + }, + { + "public_key": "0152b2b3cc1de020e0cfb5887d0fda5d99da5decaf98af90f13144e97d0e35eeaa", + "signature": "01e9c7c3257c9dc387bc975918a6fae4791b7a6b730819b511c2a1f20ae754ae8aa63f453d7feed6717fd65bdcd5f19fdee251e29cbe35605e833bcc8838689207" + }, + { + "public_key": "01574bc2bda20dba89bbb1cea295431bc1ca8f143b2b183196f53b919dd0494ef6", + "signature": "0106b32ccbf2591ce720718c73ef28ae1071aa61ed376949ba7b8735e4aa5972080b27f58c3978a6db6c0793b54f86fc15e39d008c5661b115c5908be8747f440f" + }, + { + "public_key": "0157f18d47996f1bbb059f2043bafea9c218d7f50e4d4dd508bc3661844300c3d1", + "signature": "013bd472a701908ea32b4c020596d763b238fb128e7a777d1fcd4a107074754660851474c1c2da7b83175c7760f03c781e9a2952d640ecab9a33f6f7d1e19a4908" + }, + { + "public_key": "01587265e95c4d895c912d3091b76d7d6034f9b5b6c38074c8f88244f65813cb0c", + "signature": "01ecb78019b0deefbc00f7acda8c51dd4fd26d6e9ed056f4c671f61b8b192ba81fac7f0e6c9953ac28da420d064f4802e9f1fe6eb60a5bacd47fa8b385e2dc6204" + }, + { + "public_key": "015da9ac1f6508be409bc6ed45bc44c6afd6d94b90d60014576418a79b61d563a2", + "signature": "01ce7d53830b4bc4340e26c0b13f5cc5e52e057831ba72c8b40e7a73272bd3ac39b564450a017378054b4d2f612e8a28b4e4737aac07c72477988c318a1cb00d06" + }, + { + "public_key": "015e8eb1a4bcbe3b6d786ca160ba5ee8d49671a3f3bb496728879370eae1c1d4c1", + "signature": "013e7172d4eba656ce05ae9a717bcd63ccd6f4e08c5496782f602e4841ba1865601b83d07810ba85f969a86a513eb77049f2f52cfec92bf55f017237655d24b305" + }, + { + "public_key": "0161c5fdc6db7ddaa7770478fcba908412bdd570fb8b5133c81b7db707400c9d47", + "signature": "01f7fd77e89848c859b2b2031066b56ab9a7fa90fb5592b55d659f0cb4043f2971c3e554672fda8cc2e0e5a7a0388771b77d323a7039d424f6e89445a59d32fa05" + }, + { + "public_key": "016adc82d5f8368829c9cd6088fdd39b46960dbf5a7f4fc18f498f5bc8637ec656", + "signature": "013bb8405384262421cbee82bd8d9940afe06ca06906b392ae9e19f371ea48fe0f5bca92aecae24f32a8f8d09024c73d70db39cea698d85807684c48828ca27f03" + }, + { + "public_key": "016c32abc5867fb9d5fac0ff6b6cdb959101a505a2e8137ea8ca07e120a4775aa8", + "signature": "01fd28aea6d25cdca8db53d15d6719bfd4c093bdd3ffde74bdf72bd91ab49ea833b424f7922a28201339871c0d254d8bd89592c490ef2a13ca15eaaec1b82acd07" + }, + { + "public_key": "016f2d5ee5c89484c8f686959ce1a6a970960d08bdf95e02a2aaec36f713d6b8be", + "signature": "0190ecc66029f439284297cb2342712d0824e64f5239639fa56c2d6db32c236c5a5cb7a6aa09ea9ff8cf5f7944f1d66a1e476918246f232692d6a8e9bd4d8e940a" + }, + { + "public_key": "016f6ed70e4a5acec750dc087674e5de2ad7b6d9595945c4059c5ca1a47d4dd3ab", + "signature": "0179a91e38a38275ab15d0989c758e43f167f2e84ca7e438fcf46628346d01704fdcb2b185b34560c3b5f6cd2734867c4f4793a96bb3aa541de719a23571fc3f05" + }, + { + "public_key": "0173939aae4f89758858c42bd207cb75cc4adf6e79d090a4500bbc7484a84d8f09", + "signature": "0123c77a59ec4d6acbd660812aec9859f0012ca1ea58df005dbee7e87542a56a219d97c62d12cdfb96285dbb49509426e04e265c33243f4d2856562027294c0a00" + }, + { + "public_key": "0178afbc7b204fcffd5c6832d0e04877a97571a7a9c8d021966df9d57c1742aa10", + "signature": "01b5d74be2724a03330efd41356b34f53508a7377047927d5ccadc0c6ce0be3575cd5647ea5b9f0b872fc197589a112623cbf1148df8549a188cd2c78e75066807" + }, + { + "public_key": "017a684f6787e78e68c0063aad5a4fb26448b340d36c0e8aa79d67d82ce03dad28", + "signature": "01b1b352ae56aadeb0b40e1416125e39ee88643fac3b0a30ab9a9927cbc78fe582f1f5f813b814b11785c2c297eb3f91603296486d7c70d2ec9013a88a07625a0a" + }, + { + "public_key": "017aecfd5ce9cb89b4c7de23a1acc57fd7ee8a724d62df8d7e76c50d85a48ffbe0", + "signature": "01f6a5baff263b741ab9208b3d4c3948f393584b620b8e3d874ab9457abe4eee2bd8685ded5ac746a069fd3be21b3177b811110549084792a17ce98298944eef01" + }, + { + "public_key": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e", + "signature": "018f64d14c1bd3a5072d7e54280b106cca86577dbed5e6c9181f16e9268036176a905b0e6389d9c5b9fe874d564d147f32c568b9c2f07567034e0611b161d3fd08" + }, + { + "public_key": "017d9aa0b86413d7ff9a9169182c53f0bacaa80d34c211adab007ed4876af17077", + "signature": "01f16ad7ac8583c2df206404c93f93a4c10d9b5da4bc9f9be04d31cc2b767bbe617c80faf9324916cc7cdce8ba15d854557f9338a5ef6cd3df621d189d09ce060a" + }, + { + "public_key": "018210173344167e081825b3d646da040166d65e45db0e84d80be046fbfa9eea40", + "signature": "0169e549fbc1006e038483f75028cefea2b78709f6129489f0b194581ddbaf2ce25de3fe798d132be124f7bb7979794e1aa6cf8da086a53a4595ce979136c2e807" + }, + { + "public_key": "01852d06432105b182c299a721cffd3ebb9ccbc5060c9bd503594b1899506bcf4a", + "signature": "01fa34e68c4f1667ae9c876e7b5f6b16f020118a418aae8ea0c55bb75ffd974de98461e5283d0e085ac8aa43b1b4d80432b5c7d611623bc6ff27bdc971dea74e06" + }, + { + "public_key": "018669ea1ca10564197c9063412c27ddf590fb46f2cdfa63f0a2b7bf6b508d9e50", + "signature": "01031385574c683403cbd7db446756f406aa31bd6736c47ad59d87b8a60a5ef6dcda19903008e5c5ba4e3490d37228aab7bdccf9a09d482ff87b1bb5db16ceb309" + }, + { + "public_key": "0189427f604fbfa62aa7d204a6c3f0034a910be6a4a5839cbf53cc10361b5e4c28", + "signature": "013b1438142f9e4ff2912ce069596f927337ee342dffddfa43fb0e379b6bd65074f48b71c09b63fc40d3d554d347feb832e260096632df7a9b96a2918e3172d60e" + }, + { + "public_key": "0189da179d3ae3fc8f0975da77851d11226bfda3327ef17e343d9112aa71426cb6", + "signature": "01fc09a3eb64ed81689d623b52db8e64d60b702ec0339d1c0682e6cc391362a5418e1e131d64fb6a5cbccc935cf45102f63ff52140f66eb871ab5aac564aa66d0c" + }, + { + "public_key": "018aaba74e8a4deafb9d6877536186d85c5fcf7a73b9648023a3563a0b9bead495", + "signature": "010cf8d1d1d949c611f5ec57be5bb00215e4b71cc15df12c49f1eff7d1d28e7cf45fe3df295aabba7a7d5ce27008781cc62758d1f02677f920bca4b5c30ce2eb02" + }, + { + "public_key": "018d78dfb68f4edc0d654768fe8f2d84e6b244de7664e0a30ece3c438fd0747f30", + "signature": "01ebb5ef5ef49ea6d6d2b28c861f96fdb4fb4a359e705876821a3b3ea4dc7bc162ff35a1c24d82ef9df34217809fbdbde32016770fba1d460b098029c6dd21e607" + }, + { + "public_key": "0196948158bf5b35c0c84f680f110b8debaa4e7628e13ba336a95651a214d3b9bd", + "signature": "0142d1c06f38e59c7aae9263f3bcf5f5e5cac590c1855485b1fc502a1c1ee0753aa0a7e795fc3cb9d2e6b768b50aec92b62ac64e110f950c16d575f32973239d05" + }, + { + "public_key": "0198bfb7b9672ab09a5dcd46d5f048beba37bcaa5234f79c8fc82803a14761b1bb", + "signature": "01fc93a4b90f9b12fb936d0b226f5fef59b605c5b6d236c1642866b8ef4c9d6ddbe132f0080f365a5549913ace9d39be0770d205b103b4442aedcde3dc79c6c60e" + }, + { + "public_key": "019a85d7370f913f0a9f55a12da2b031d8c0a36752cd8fd7ff0b47cff0d4fc57bd", + "signature": "014027db69e5b9d37f8adee3eaf2234d981ae474d358d04b0f0a562ebce3a2206df480fcd163e0be98970722bebcaf36e63847bd523ae37758d049b7df14bfaf09" + }, + { + "public_key": "019ae7d932207d8fad7025ef6831ffb9ca495cb9eba65a30a35e3453640d7da7c4", + "signature": "019272782c47db2b47dbc92767eb5bd8265b34e9f94ea3f3fb13ff9338932d27cc783729a2dfdae4279f2ca771fd052d79c4cbb3368cb5261fa75f64f9e4b0d100" + }, + { + "public_key": "01a03c687285634a0115c0af1015ab0a53809f4826ee863c94e32ce48bcfdf447d", + "signature": "018b088d74b62c364be3f9293b586c95030cb029e0957c5e1d86f97461c798ab0fd41c1b2cd18a726692684ff0a836116bbecb660e53855107f135c94d928ca00d" + }, + { + "public_key": "01a3536b5794be5b53972a9bbb56795cb7a4af385a3f1cddb29e253cbcf73586f6", + "signature": "01abe13ac2c29f4d2cb004d6158cf05b3fbe5e92ca06c75f251ca28c1dd537e982eab20dad2edacdb61a302bde66826710264b75a6247da60f5ab99c010203760f" + }, + { + "public_key": "01a5e6982d0545f6896418d05174eeed02ccb2f358bf201631b55cd49708f9f2fe", + "signature": "0171eca50ad974398a7c50d35ba5df62af8ac781d84ec672972f1218c6639a0ff4bd50e685c24a7ddb6a34f70ba9aadbe95fb80593960c2a608027724f48601307" + }, + { + "public_key": "01a6a98d4ba2b3853fdef668690dec016e5c4f91f1498e78eb20be04b8448feee7", + "signature": "013633896134e080d2a0d8456b2303c21fc2f0d010fc34ab58158750888eba997724af0fc17d7644917b5694056dc45600699327a115abe34e3144b6a7146b5303" + }, + { + "public_key": "01a854ee50171a515aa9b0214fbc8b3438ff9100e8b1411a8dce432aa68ea5f73a", + "signature": "018f2357aa82b7306d1b987231f627b792ac8e40cecd2a9ec532691407a23d15b9601b7e66aedbf884799ece6e514d260e9904cbcf6bf186073f01613d1f451a0c" + }, + { + "public_key": "01aa17f7b9889480b1bd34c3f94f263b229c7a9b01dd4dda19c2dd1d38d176c7a0", + "signature": "018ffe1753a5c22f09f12ac8cad353b35c93d6a3579c6473cb2d1f35dc688ec02e81255f657a47361614fa1d1333d401fa04aafb5c722ea21592b1aacf52a4450f" + }, + { + "public_key": "01ab7ad70df3b601c443623bdf4a414c477a5312350bdcc9e3e09e3727a3afa66a", + "signature": "01379d3d5d5b1f2398fa41a1bcda23a6d35a4f053c03959cb2f8c72ab75598b0bd30afc94218b1b250dad9862c29925013e24b32c5b8f4cd6d84bc8d04f663120d" + }, + { + "public_key": "01acb150f1c413778bb72ec1fab367323327bf9b41b72391ca9cf9e703ab18040e", + "signature": "01f769029ed26e0f1c8ac579b61da108e1e26d015d619c89a939ba2b334460195969adaabef0b9763da889f9707802ec9a4bcd3eb8e7c6275d60d058a29b9d4f0d" + }, + { + "public_key": "01aed6b22c38bc80ce96b0c32eb856d231f3c9f4c19fbfcea7924a25a9a352e09c", + "signature": "01eeb9aeb82760a32ab45855a640eca2bd2cb7f65e6a561d6fb71b483c6d6a88f0013225181a09b3c6ead428f1ee269084bdee52da7afcea6079f7329d83ee7900" + }, + { + "public_key": "01b0645dc6cf635de6cc3e7f8f1e7c7150eee69d0149fabc4bbb3472709c232441", + "signature": "0153158119f296db7781c99cafbf8c22d4390dd5599c6633dafd0515e775320356b4127c872dd760c98423cb77fbe88a5e910b9b7810eaa140c458e3510fdbdc08" + }, + { + "public_key": "01b1e495b07045f098d04d729947d8efb6a471c7b5ba69b461c980a276f56957c1", + "signature": "01ad6b78e60b8f274d6118914f5daa2ca1afe6dcdabff20d502011ae29ddbc73734b2aee67b3149d5b9e4c3f274699a47449cc799fe4805b3285bb236c343e0f08" + }, + { + "public_key": "01b4447a791cfea22f8293a165e7c7895121347a18845791c6bdea536437be99b4", + "signature": "01d7f3dff18d73850c86ea64dd73a56c2a12a4d2927aea1f5e4e8cca4a86f95acba3d4fab89ac0baf2235ee9ce2df76a726d480f8ae1878622ade210f5d7357c0c" + }, + { + "public_key": "01b7773ecc2c7b984fa90d75b17f01f2bce563499c4d7b102e75361e2a1fad2f40", + "signature": "01ffcdb7a668d1f55014b834c52250b18b0dd401fa094a2eaa5315a2e1f8c8e7ad2668caf6d45974e270be8d1e8e32bdfe635c8a4c749ea2a12b6d8a49db05f00a" + }, + { + "public_key": "01b99d5f54a5147ee34f472d546d84037007025df5e1a13cfdca7aac05e9ac5858", + "signature": "0185f92eb8ffe784619da29e7156de4e314d9f28bab36c39183f2e0f60331d8197dd8b87c7cf23dd96ceb76aeb6709343e076a0f306cf91d2f3bad9c0a1e6f0208" + }, + { + "public_key": "01bb9d7599bb8a0464946f8b7d812db16c80fb66ae345a7649d8cba96215b4a591", + "signature": "01baa4202026fced7c1ea9312b9a2b76f5874afb296b56425e76b590e3bceaa2ad86a2f4c78efe812eb6db7a7426d02e37b0a8711be6c069f8fb6c27849069b504" + }, + { + "public_key": "01bbb7ecdd756f30c7c27cfe7d144cfa74df4eac8513024aecb48257902df42fd1", + "signature": "01f9098e825889cd07bce129f7c0935d6918b7edbfd0bedbb06672dc841a235506e992a1eeab50abf03fba8fc08c523d8bd6413ccc937bad2f16abb5b9d11c0002" + }, + { + "public_key": "01bfde7ab665a6f7fc34dff1125511c3b548f391d6298c7faf519038d21d8dc4f2", + "signature": "011e6796b8dc8e0fe0c88464e3c3b85dc9dd684aec7386f6d6aa2fd21abc054a8057c74893eb1b9577b99c0665231b5d1fd8797e2e774fadf753dd92dc4d064f04" + }, + { + "public_key": "01c444f05da5781071c6375575d713193f4495bd6d83c4ef4e788502e2c8c09a9d", + "signature": "01ed3313763a79654457cb43133c16134cd0035faa34fb19905f931491a01d5dffaa6355f87fc83501c477c23d854d60ff5dfa5d673cfc0306851b800d7fc08b08" + }, + { + "public_key": "01c56d4479a56a1b57d181b8f2cf6d76bb2bae0728281d953419255da9702ceab3", + "signature": "01bfc4fa5deb64c1437d61103a52951bc7f6e9f011db0e0f6dba68670045291a19be62efd6e828e8dcdc11709305408078a49b3e9859d57e9bc545eb0701161b0a" + }, + { + "public_key": "01c5abc22e0525fcb3b13b4f640c66f8141743ec892b1a4ec32bdcf22ff4435f13", + "signature": "0141b0a4f5d1d038f35defc3b4a111435dd81f99330ce6cc6d3c1fa19ab009ec6590b4ed346193d3945bc9fe4415f9c1a82c26fcc33e852dbfc42a258df21d600c" + }, + { + "public_key": "01c642ea7442d6271119cee66f76848525d67932de3f1ec36e236e37b38d97a03b", + "signature": "019bfb4780ec8b069ce1f34d3f17b2719a94f000978e9da379bb115a0941d3d68c646d7b9c0a88bc8567fb26a125785f70041e6329abc822583fdf2e2c63997702" + }, + { + "public_key": "01c9f96503ba3b88efa61729b1f9fd4203f083ef2d4205a47ce4a50b63e5fc6bf8", + "signature": "01a0b5994e424c8587fd20a4e1d042dd8c2227a601d8d13b63bfad78592dce1db1aae06692df5ee7ef2dd7d9aaa686bab4bb9fb62fb9bee9d2c764d32cac8d4406" + }, + { + "public_key": "01cb4be11fae27723ac9e88dff27331b836f15ff8227ac335d8dfc7602c603badc", + "signature": "01dadc08f468c6f4456df30cfbad4a140f7e2e6bd65de0296cbf1bd09b7443ae9a0170edf4899df8dafaac990b1d6d8b052f95e4923f850a0144764ae52f834b0e" + }, + { + "public_key": "01cd807fb41345d8dd5a61da7991e1468173acbee53920e4dfe0d28cb8825ac664", + "signature": "01e72128c617b5ffa80611871762b05a1698da389f235cb4e29943df0fe9ac284b97837b05c1ba9749d17837780ea43518c07200025a5ecf743ece521c339a2f0a" + }, + { + "public_key": "01ce901316acefbd7b18119110a814fc6592b98a2370e0ff47ec143c21b8c7e590", + "signature": "015e3cd8cf210966f8c93e144a15b9f888ff4c757c20790c5149e731b021ebeb14dfe482b52fa189da6162cd64b14a7634167f9b7ab09ab24dae1c0f5deb7d8b00" + }, + { + "public_key": "01d66d09fb163ca2723960470777467056951df570d6add6e051af827a3b07c76a", + "signature": "0157dbe8747ab2982e46e07f2d57d2f0bad838bb207c0692bcfc5ca4eadfcb22b4111bc6ea221aa9ecff7b5c6fc33ed6898d4d52cf6657dd743c1c613a91dd630e" + }, + { + "public_key": "01ddcb70a7d309e0c96ded5587c40734cfda361194d93b8187c128cddac7b18ed4", + "signature": "017095a0b15bae083cb06fd9c33055dd6c8716430e17be9985a14b5b4e6f88336c526506e122dbadd611e6cd93b263670129f3528301fb12f87529c7933a0ea30d" + }, + { + "public_key": "01e04018a67f239124ab5769db728b9bb586139af782e2b30bb06144b7914fbdd3", + "signature": "01f6b68c0245eef8046104e1b735158db9c72e49d531b9d2a0cc2a276ff4d2565eb9a478b58e0fd020ddd8a1459c24188432e4c96a184fde2ff18627565c83930a" + }, + { + "public_key": "01e6c56c86ca97d7387d0c989c061ceeb205eeb04adf9ec41569292120ed9ae4a5", + "signature": "016409ced21d244869b74f9c8745c0fe28d06427075beae1d9c2d808487b1cee52038af5f7061ff63a6f03930b2c8ce47984eaa6360e8092143d0c254505962c0b" + }, + { + "public_key": "01e8603898d6f8d9a9633fec777b7db633e61626a3cddb5bb38b21d654b898244a", + "signature": "01fe56974d250af7c452832d4af66c75ff8c921be947e4a9753d0a95bc5109c6ef20adcdbe5fa16591131f0424106f31a357ca35a5b54e0bd70164a871cfb69c04" + }, + { + "public_key": "01f45410ebfcbebf24b9bd27ef98dc783bed8995e49881ead839c67e6b94668f58", + "signature": "01165a82818d97ad16be79bd012e370f960402a1d23115596f1947bcd5c0cfc9ea9fd669c7fa28b8a3e5ed1705eff779eca00a8b58337d916e67976690c82bf605" + }, + { + "public_key": "01f8684089490edcdb5feab0eee3615f26621dfd7f16419d06299466bab6fcb9f8", + "signature": "01508aec56995596d87c6adb01b32ef20232eb79abd42db8ef563ab6b924f1256240cbf5ec3bb9315e52738a722f96bae112c3309b94bcc94c7152eab6d31f9d0c" + }, + { + "public_key": "01fa5736dce533c7625156e92849b2d5956ce4d0436bc5ae3903ae828f5bf864ad", + "signature": "01012983372a022b88beea908c5dfd82dcbac91d2888620187c6d25d187785db1318509ebc48990dc25795772ec7aa80bfa1340116b0fb08a34b184185e4346801" + }, + { + "public_key": "01fd7d17f4a36e841cadd790235c720c7435571d8cb541f037652521251a6236b4", + "signature": "0147bce2dc76627c1cb39abd4eeb1a40fc8d18338ed46984127fc2ff601b93ee7b67e66a93d0fa240458f9403c0702c88a850887a3ff8cb66ba41da9b916709800" + }, + { + "public_key": "01fddc7e47ac36a240007eba368e417dd52d824026fb9baaa1454817993ce985ea", + "signature": "01c7f75ff7647c6167e0c6e61b95a711712e6f3c4771c89a77159a3444e5c48616d53c33dc39906d8d3261d5d9a42f04e1119af2cc83744ba39b32b9a1d186f401" + }, + { + "public_key": "01ff703503300534b33263bf3d6ef3b592ac48a0d99e9bd8c7ed415611b6829121", + "signature": "01128c508eae98e64e61b83c1a3d3ba96cd6aae970cac5b0c7fc32bb1d3ca5c4cd00e959a15055705a2848def079034b6818ba2294d8c5052f10cbc70cb806dd00" + } + ] + } + } +} \ No newline at end of file diff --git a/src/test/resources/method-json/chain_get_block_transfers.json b/src/test/resources/method-json/chain_get_block_transfers.json new file mode 100644 index 0000000..e3a78af --- /dev/null +++ b/src/test/resources/method-json/chain_get_block_transfers.json @@ -0,0 +1,20 @@ +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "api_version": "1.1.0", + "block_hash": "e2800c21cb3c93b8e82fd348e044456f326bfbfce140bc00581800cce8a18fd4", + "transfers": [ + { + "deploy_hash": "5db09c0275c4c1ba54ebcc69784ed767350bf9c2b0be7ab4fec1ca84acd1c47d", + "from": "account-hash-cfdcd5e6aea50288bcaad51f796f284d5fcc99d9557e29e7ab357e01d27c3341", + "to": "account-hash-358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4", + "source": "uref-88aa71c64a5511299a258a0f707984476a10929f80bf152936528582095621d5-007", + "target": "uref-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54-004", + "amount": "7000000000", + "gas": "0", + "id": null + } + ] + } +} \ No newline at end of file diff --git a/src/test/resources/method-json/chain_get_era_info_by_switch_block.json b/src/test/resources/method-json/chain_get_era_info_by_switch_block.json new file mode 100644 index 0000000..fe9d86a --- /dev/null +++ b/src/test/resources/method-json/chain_get_era_info_by_switch_block.json @@ -0,0 +1,553 @@ +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "api_version": "1.1.0", + "era_summary": { + "block_hash": "12284e9e6b1c440ee91d2803850a7b7ba5e4c029c6f4abeb8aa1eb743608ab73", + "era_id": 4, + "stored_value": { + "EraInfo": { + "seigniorage_allocations": [ + { + "Validator": { + "validator_public_key": "010268bb35bd370a499ba775877aaadef1ba87bff64ca527ae55f88cd8af9791de", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "0106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca", + "amount": "289795989130" + } + }, + { + "Validator": { + "validator_public_key": "0107cba5b4826a87ddbe0ba8cda8064881b75882f05094c1a5f95e957512a3450e", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "010b0f958cae89f265d7585f8abc67639fd68f9764390682801c744b0e126fb9b3", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "010b9e10801772fdc80bc616e6a3b31296c4737c1f93a33b6f4b1ef51647f0b02a", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "010ee608c883a521ab5f1771651a3f85f81efb18eea5117e6301b2a151b4766c9c", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01101ef8635fb189ae3c734ca699dcbb97f7f844b9b96f260642a734b85d4c1c85", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "0112357f15cf6461a772978c6fc72d93bc10c1abda3a85ee7b7feb593c785b95be", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "0115dc50b6c6df49a6aa5766ee3b102b098b03bf0992c0813d9e842f6277fb8d71", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "011752f095ee6d2902540ea4fafd649da4b7b0c2a6e38176fb7f661a0e463d43b4", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "011f290fb7cc707728c3ab3d4ab1b4989b56e0ddb322859e062b231aed18728328", + "amount": "39504146357" + } + }, + { + "Validator": { + "validator_public_key": "0124aa3964bcd0ba9911594322a534e18e36e0c2e149b148e615505316733599af", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01267447c9ac87b4330ed3395db95efbba78394533666f29a56e8a1ec7b31abbd4", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01295693ba2b3822ed5d4bf06bd74858c4e3638cb17078f16781f25c1f92d34bdc", + "amount": "40442375107" + } + }, + { + "Validator": { + "validator_public_key": "012b77bfab443aae5957d4d2d4991e55f692fa3eb56c2ac1179a188881a575292a", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "012e26890209f5234fdc707c2086ef84314bba0e2cc9c7cdbe199859152b3fdc30", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "012e30f811fe6d99df0f9efee2103c02fe3401e9eb509eb93274429f0138a93d33", + "amount": "41541728640" + } + }, + { + "Validator": { + "validator_public_key": "0135251e59c6f01800c51c4961ef37ebd34575e28c0942fdffd2ea34b09c54f86a", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "0139ae034e09ee1392ae7aa6512d4b6c40d1ba726b580dcd06b9db06b057ca9b82", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "013a6385a646c3b96e31daec5d0bdd749c06661d0a3d027aa9d38895e846ff32c5", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "013cf6d30266728538302eb8130b2336d1caca61240c25c362c99a894fd0b43507", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "013dfb779f0677436c775b38f47283cd7e462f2a8ceba2a2cec6ed00a0e8aa6bfc", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "013e5702e929292627c1cde4e4e88c4e30e4e183a84b1f979ff2a5344ac6730340", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01411c821113ceadf3a5498ec17ab9034aa444a036196d37030b99dbb141939188", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01422b1c5ed6a39ca2901f7ead65b0b2226df337fdfde53ffc0a0d5ec2aad12181", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "0143147a8a4628eb45e906d8ab547fdef21e811bac12468e506e54724606498eab", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01441a29bf25836949a0498cb1aa22ec7239f5221c6f291931368cddf8f740ce1b", + "amount": "41167478835" + } + }, + { + "Validator": { + "validator_public_key": "0144e35abc4886168a53338539a8a3649ab1257d9f0c235ce38961624a025d40dd", + "amount": "75606545793" + } + }, + { + "Validator": { + "validator_public_key": "0146c61d107ffb32738fdbb837213b240bf872536f326465642e467fe6884e7cdc", + "amount": "44895664066" + } + }, + { + "Validator": { + "validator_public_key": "014879b8cf7f459939fed0ca762ae21cba6b2651f256c2c16e35b24ca1b82ad2e5", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "014d5eb3ac23735e695ae372defa057ca089a921f08a199415cc73fd118f68dc94", + "amount": "37424635228" + } + }, + { + "Validator": { + "validator_public_key": "014fdd08ed688b19cd92fb93be9b2a9108361f63edc7d0b1fda84f3e45e3bbd8e3", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "0152b2b3cc1de020e0cfb5887d0fda5d99da5decaf98af90f13144e97d0e35eeaa", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "0157f18d47996f1bbb059f2043bafea9c218d7f50e4d4dd508bc3661844300c3d1", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01587265e95c4d895c912d3091b76d7d6034f9b5b6c38074c8f88244f65813cb0c", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "015da9ac1f6508be409bc6ed45bc44c6afd6d94b90d60014576418a79b61d563a2", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01642d7047314aaa0a85d6cb9ab0c49ddb3c020b140eb8093b7276196bc33aaf43", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01691616af607822e731bba757ace7e98f2d62627645d0d970cbeda79f08d2742d", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "016adc82d5f8368829c9cd6088fdd39b46960dbf5a7f4fc18f498f5bc8637ec656", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "016f6ed70e4a5acec750dc087674e5de2ad7b6d9595945c4059c5ca1a47d4dd3ab", + "amount": "44985635336" + } + }, + { + "Validator": { + "validator_public_key": "017563342173f4a1c345334cca27780008646357a3dc49e3c1a18422800b760855", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "0178afbc7b204fcffd5c6832d0e04877a97571a7a9c8d021966df9d57c1742aa10", + "amount": "44490793350" + } + }, + { + "Validator": { + "validator_public_key": "017a684f6787e78e68c0063aad5a4fb26448b340d36c0e8aa79d67d82ce03dad28", + "amount": "41541728640" + } + }, + { + "Validator": { + "validator_public_key": "017aecfd5ce9cb89b4c7de23a1acc57fd7ee8a724d62df8d7e76c50d85a48ffbe0", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e", + "amount": "289795989130" + } + }, + { + "Validator": { + "validator_public_key": "017d9aa0b86413d7ff9a9169182c53f0bacaa80d34c211adab007ed4876af17077", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "018210173344167e081825b3d646da040166d65e45db0e84d80be046fbfa9eea40", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01852d06432105b182c299a721cffd3ebb9ccbc5060c9bd503594b1899506bcf4a", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "018669ea1ca10564197c9063412c27ddf590fb46f2cdfa63f0a2b7bf6b508d9e50", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "0189da179d3ae3fc8f0975da77851d11226bfda3327ef17e343d9112aa71426cb6", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "018aaba74e8a4deafb9d6877536186d85c5fcf7a73b9648023a3563a0b9bead495", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "018d78dfb68f4edc0d654768fe8f2d84e6b244de7664e0a30ece3c438fd0747f30", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "0190dd8430afb0958c25636596d1e98478ebe240c81260becf687cdf90ee088860", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "0196948158bf5b35c0c84f680f110b8debaa4e7628e13ba336a95651a214d3b9bd", + "amount": "44985635336" + } + }, + { + "Validator": { + "validator_public_key": "0198bfb7b9672ab09a5dcd46d5f048beba37bcaa5234f79c8fc82803a14761b1bb", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "019a85d7370f913f0a9f55a12da2b031d8c0a36752cd8fd7ff0b47cff0d4fc57bd", + "amount": "44817345476" + } + }, + { + "Validator": { + "validator_public_key": "019ae7d932207d8fad7025ef6831ffb9ca495cb9eba65a30a35e3453640d7da7c4", + "amount": "44535778983" + } + }, + { + "Validator": { + "validator_public_key": "01a0082c060677608ef48ff2aa9a4d1833ba5bb53c0255c0d47dd3d0942bd3ab20", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01a03c687285634a0115c0af1015ab0a53809f4826ee863c94e32ce48bcfdf447d", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01a5e6982d0545f6896418d05174eeed02ccb2f358bf201631b55cd49708f9f2fe", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01a6a98d4ba2b3853fdef668690dec016e5c4f91f1498e78eb20be04b8448feee7", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01aa17f7b9889480b1bd34c3f94f263b229c7a9b01dd4dda19c2dd1d38d176c7a0", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01ace6578907bfe6eba3a618e863bbe7274284c88e405e2857be80dd094726a223", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01aed6b22c38bc80ce96b0c32eb856d231f3c9f4c19fbfcea7924a25a9a352e09c", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01b5d00a38e1783345ffe0bfa8423e026b76480683e0b19966ee47c7f68a827c00", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01b677d508c9b784c376c799033b20c1d1398694e2fe734f2e262a18600dc630fa", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01b9137fcbb85baf03db2aa41e459199b27514a9943a0d2776752974c793905880", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01b99d5f54a5147ee34f472d546d84037007025df5e1a13cfdca7aac05e9ac5858", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01bb9d7599bb8a0464946f8b7d812db16c80fb66ae345a7649d8cba96215b4a591", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01bbb7ecdd756f30c7c27cfe7d144cfa74df4eac8513024aecb48257902df42fd1", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01bfde7ab665a6f7fc34dff1125511c3b548f391d6298c7faf519038d21d8dc4f2", + "amount": "40397100534" + } + }, + { + "Validator": { + "validator_public_key": "01c54f086eaf2f0c66e70c3bc52e84cb04154d2860af641f6b2b8dc76567329c1d", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01c56d4479a56a1b57d181b8f2cf6d76bb2bae0728281d953419255da9702ceab3", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01c5abc22e0525fcb3b13b4f640c66f8141743ec892b1a4ec32bdcf22ff4435f13", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01c642ea7442d6271119cee66f76848525d67932de3f1ec36e236e37b38d97a03b", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01c91d7ac17e2289740a33d61c4dffeab43937f6c1fc0820ebcea2c199ccd73e16", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01c9f96503ba3b88efa61729b1f9fd4203f083ef2d4205a47ce4a50b63e5fc6bf8", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01cb4be11fae27723ac9e88dff27331b836f15ff8227ac335d8dfc7602c603badc", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01cd807fb41345d8dd5a61da7991e1468173acbee53920e4dfe0d28cb8825ac664", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01ce901316acefbd7b18119110a814fc6592b98a2370e0ff47ec143c21b8c7e590", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01d00d2d59c18dab882b1141cb3dbcf1f05078ffedda0551c53c6a3cc1191e4672", + "amount": "41541728640" + } + }, + { + "Validator": { + "validator_public_key": "01d66d09fb163ca2723960470777467056951df570d6add6e051af827a3b07c76a", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01ddcb70a7d309e0c96ded5587c40734cfda361194d93b8187c128cddac7b18ed4", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01e6c56c86ca97d7387d0c989c061ceeb205eeb04adf9ec41569292120ed9ae4a5", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01f39dacb5ca4ac415041d1df96f043abe911e385cf6da99532287ebfc7947cbe0", + "amount": "37424980757" + } + }, + { + "Validator": { + "validator_public_key": "01f8684089490edcdb5feab0eee3615f26621dfd7f16419d06299466bab6fcb9f8", + "amount": "44940649703" + } + }, + { + "Validator": { + "validator_public_key": "01fa5736dce533c7625156e92849b2d5956ce4d0436bc5ae3903ae828f5bf864ad", + "amount": "40487071804" + } + }, + { + "Validator": { + "validator_public_key": "01fddc7e47ac36a240007eba368e417dd52d824026fb9baaa1454817993ce985ea", + "amount": "44985635336" + } + }, + { + "Validator": { + "validator_public_key": "01ff703503300534b33263bf3d6ef3b592ac48a0d99e9bd8c7ed415611b6829121", + "amount": "37424980757" + } + } + ] + } + }, + "state_root_hash": "4b8b3f66fedb876c8cfb3d2a6440e5c3ae1aa8801b6946779f3baf362b7f467a", + "merkle_proof": "01000000050400000000000000075900000000010268bb35bd370a499ba775877aaadef1ba87bff64ca527ae55f88cd8af9791de0515e3b3b608000106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca058ade2f7943000107cba5b4826a87ddbe0ba8cda8064881b75882f05094c1a5f95e957512a3450e0515e3b3b60800010b0f958cae89f265d7585f8abc67639fd68f9764390682801c744b0e126fb9b305e7e4ab760a00010b9e10801772fdc80bc616e6a3b31296c4737c1f93a33b6f4b1ef51647f0b02a053cb0376d0900010ee608c883a521ab5f1771651a3f85f81efb18eea5117e6301b2a151b4766c9c05e7e4ab760a0001101ef8635fb189ae3c734ca699dcbb97f7f844b9b96f260642a734b85d4c1c8505e7e4ab760a000112357f15cf6461a772978c6fc72d93bc10c1abda3a85ee7b7feb593c785b95be053cb0376d09000115dc50b6c6df49a6aa5766ee3b102b098b03bf0992c0813d9e842f6277fb8d710515e3b3b60800011752f095ee6d2902540ea4fafd649da4b7b0c2a6e38176fb7f661a0e463d43b40515e3b3b60800011f290fb7cc707728c3ab3d4ab1b4989b56e0ddb322859e062b231aed1872832805b56fa13209000124aa3964bcd0ba9911594322a534e18e36e0c2e149b148e615505316733599af053cb0376d090001267447c9ac87b4330ed3395db95efbba78394533666f29a56e8a1ec7b31abbd4053cb0376d090001295693ba2b3822ed5d4bf06bd74858c4e3638cb17078f16781f25c1f92d34bdc05c3ab8d6a0900012b77bfab443aae5957d4d2d4991e55f692fa3eb56c2ac1179a188881a575292a0515e3b3b60800012e26890209f5234fdc707c2086ef84314bba0e2cc9c7cdbe199859152b3fdc300515e3b3b60800012e30f811fe6d99df0f9efee2103c02fe3401e9eb509eb93274429f0138a93d3305807914ac09000135251e59c6f01800c51c4961ef37ebd34575e28c0942fdffd2ea34b09c54f86a053cb0376d09000139ae034e09ee1392ae7aa6512d4b6c40d1ba726b580dcd06b9db06b057ca9b820515e3b3b60800013a6385a646c3b96e31daec5d0bdd749c06661d0a3d027aa9d38895e846ff32c5053cb0376d0900013cf6d30266728538302eb8130b2336d1caca61240c25c362c99a894fd0b4350705e7e4ab760a00013dfb779f0677436c775b38f47283cd7e462f2a8ceba2a2cec6ed00a0e8aa6bfc053cb0376d0900013e5702e929292627c1cde4e4e88c4e30e4e183a84b1f979ff2a5344ac6730340053cb0376d090001411c821113ceadf3a5498ec17ab9034aa444a036196d37030b99dbb1419391880515e3b3b6080001422b1c5ed6a39ca2901f7ead65b0b2226df337fdfde53ffc0a0d5ec2aad1218105e7e4ab760a000143147a8a4628eb45e906d8ab547fdef21e811bac12468e506e54724606498eab0515e3b3b6080001441a29bf25836949a0498cb1aa22ec7239f5221c6f291931368cddf8f740ce1b0533e0c59509000144e35abc4886168a53338539a8a3649ab1257d9f0c235ce38961624a025d40dd058155809a11000146c61d107ffb32738fdbb837213b240bf872536f326465642e467fe6884e7cdc05c277fd730a00014879b8cf7f459939fed0ca762ae21cba6b2651f256c2c16e35b24ca1b82ad2e5053cb0376d0900014d5eb3ac23735e695ae372defa057ca089a921f08a199415cc73fd118f68dc94055c9daeb60800014fdd08ed688b19cd92fb93be9b2a9108361f63edc7d0b1fda84f3e45e3bbd8e30515e3b3b608000152b2b3cc1de020e0cfb5887d0fda5d99da5decaf98af90f13144e97d0e35eeaa053cb0376d09000157f18d47996f1bbb059f2043bafea9c218d7f50e4d4dd508bc3661844300c3d1053cb0376d090001587265e95c4d895c912d3091b76d7d6034f9b5b6c38074c8f88244f65813cb0c053cb0376d0900015da9ac1f6508be409bc6ed45bc44c6afd6d94b90d60014576418a79b61d563a2053cb0376d090001642d7047314aaa0a85d6cb9ab0c49ddb3c020b140eb8093b7276196bc33aaf430515e3b3b6080001691616af607822e731bba757ace7e98f2d62627645d0d970cbeda79f08d2742d053cb0376d0900016adc82d5f8368829c9cd6088fdd39b46960dbf5a7f4fc18f498f5bc8637ec656053cb0376d0900016f6ed70e4a5acec750dc087674e5de2ad7b6d9595945c4059c5ca1a47d4dd3ab0508525a790a00017563342173f4a1c345334cca27780008646357a3dc49e3c1a18422800b7608550515e3b3b608000178afbc7b204fcffd5c6832d0e04877a97571a7a9c8d021966df9d57c1742aa100586a1db5b0a00017a684f6787e78e68c0063aad5a4fb26448b340d36c0e8aa79d67d82ce03dad2805807914ac0900017aecfd5ce9cb89b4c7de23a1acc57fd7ee8a724d62df8d7e76c50d85a48ffbe0053cb0376d0900017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e058ade2f794300017d9aa0b86413d7ff9a9169182c53f0bacaa80d34c211adab007ed4876af17077053cb0376d0900018210173344167e081825b3d646da040166d65e45db0e84d80be046fbfa9eea400515e3b3b6080001852d06432105b182c299a721cffd3ebb9ccbc5060c9bd503594b1899506bcf4a05e7e4ab760a00018669ea1ca10564197c9063412c27ddf590fb46f2cdfa63f0a2b7bf6b508d9e50053cb0376d09000189da179d3ae3fc8f0975da77851d11226bfda3327ef17e343d9112aa71426cb6053cb0376d0900018aaba74e8a4deafb9d6877536186d85c5fcf7a73b9648023a3563a0b9bead495053cb0376d0900018d78dfb68f4edc0d654768fe8f2d84e6b244de7664e0a30ece3c438fd0747f3005e7e4ab760a000190dd8430afb0958c25636596d1e98478ebe240c81260becf687cdf90ee0888600515e3b3b608000196948158bf5b35c0c84f680f110b8debaa4e7628e13ba336a95651a214d3b9bd0508525a790a000198bfb7b9672ab09a5dcd46d5f048beba37bcaa5234f79c8fc82803a14761b1bb0515e3b3b60800019a85d7370f913f0a9f55a12da2b031d8c0a36752cd8fd7ff0b47cff0d4fc57bd05c46b526f0a00019ae7d932207d8fad7025ef6831ffb9ca495cb9eba65a30a35e3453640d7da7c405a70e8a5e0a0001a0082c060677608ef48ff2aa9a4d1833ba5bb53c0255c0d47dd3d0942bd3ab200515e3b3b6080001a03c687285634a0115c0af1015ab0a53809f4826ee863c94e32ce48bcfdf447d053cb0376d090001a5e6982d0545f6896418d05174eeed02ccb2f358bf201631b55cd49708f9f2fe053cb0376d090001a6a98d4ba2b3853fdef668690dec016e5c4f91f1498e78eb20be04b8448feee7053cb0376d090001aa17f7b9889480b1bd34c3f94f263b229c7a9b01dd4dda19c2dd1d38d176c7a0053cb0376d090001ace6578907bfe6eba3a618e863bbe7274284c88e405e2857be80dd094726a2230515e3b3b6080001aed6b22c38bc80ce96b0c32eb856d231f3c9f4c19fbfcea7924a25a9a352e09c053cb0376d090001b5d00a38e1783345ffe0bfa8423e026b76480683e0b19966ee47c7f68a827c000515e3b3b6080001b677d508c9b784c376c799033b20c1d1398694e2fe734f2e262a18600dc630fa0515e3b3b6080001b9137fcbb85baf03db2aa41e459199b27514a9943a0d2776752974c793905880053cb0376d090001b99d5f54a5147ee34f472d546d84037007025df5e1a13cfdca7aac05e9ac585805e7e4ab760a0001bb9d7599bb8a0464946f8b7d812db16c80fb66ae345a7649d8cba96215b4a591053cb0376d090001bbb7ecdd756f30c7c27cfe7d144cfa74df4eac8513024aecb48257902df42fd105e7e4ab760a0001bfde7ab665a6f7fc34dff1125511c3b548f391d6298c7faf519038d21d8dc4f205f6d5da67090001c54f086eaf2f0c66e70c3bc52e84cb04154d2860af641f6b2b8dc76567329c1d0515e3b3b6080001c56d4479a56a1b57d181b8f2cf6d76bb2bae0728281d953419255da9702ceab3053cb0376d090001c5abc22e0525fcb3b13b4f640c66f8141743ec892b1a4ec32bdcf22ff4435f13053cb0376d090001c642ea7442d6271119cee66f76848525d67932de3f1ec36e236e37b38d97a03b05e7e4ab760a0001c91d7ac17e2289740a33d61c4dffeab43937f6c1fc0820ebcea2c199ccd73e160515e3b3b6080001c9f96503ba3b88efa61729b1f9fd4203f083ef2d4205a47ce4a50b63e5fc6bf8053cb0376d090001cb4be11fae27723ac9e88dff27331b836f15ff8227ac335d8dfc7602c603badc053cb0376d090001cd807fb41345d8dd5a61da7991e1468173acbee53920e4dfe0d28cb8825ac6640515e3b3b6080001ce901316acefbd7b18119110a814fc6592b98a2370e0ff47ec143c21b8c7e59005e7e4ab760a0001d00d2d59c18dab882b1141cb3dbcf1f05078ffedda0551c53c6a3cc1191e467205807914ac090001d66d09fb163ca2723960470777467056951df570d6add6e051af827a3b07c76a05e7e4ab760a0001ddcb70a7d309e0c96ded5587c40734cfda361194d93b8187c128cddac7b18ed40515e3b3b6080001e6c56c86ca97d7387d0c989c061ceeb205eeb04adf9ec41569292120ed9ae4a5053cb0376d090001f39dacb5ca4ac415041d1df96f043abe911e385cf6da99532287ebfc7947cbe00515e3b3b6080001f8684089490edcdb5feab0eee3615f26621dfd7f16419d06299466bab6fcb9f805e7e4ab760a0001fa5736dce533c7625156e92849b2d5956ce4d0436bc5ae3903ae828f5bf864ad053cb0376d090001fddc7e47ac36a240007eba368e417dd52d824026fb9baaa1454817993ce985ea0508525a790a0001ff703503300534b33263bf3d6ef3b592ac48a0d99e9bd8c7ed415611b68291210515e3b3b608020000000004040000000000cb167538310a38243d17c0d77fbf30a096c091071bc8d7488649e4a5f8cbe99a01003c53ec69a3109a89e2157a11ce3110f5d36727fa5035637ad88a45fbb2c979430200efc9b4212b34ba54cba2f2d37f142cb06c0fdab86299b9813d569a0442513724030067e21dbc936e285b3f424e1fb9d56522c9b2e1a7414efb7bd7c1cb51552b88910005080000000001690dfc5172a0b622a80b6a85d1f867a4343e2b3e23b2708e8dcf57898e51b5210101e5abf310419d4ed27b1bc06bc7e169d25a1b97190cfcf35e27de833e1d5d841d02016bf132463e0179cb1683855dbb6d834d447cac840ad57941c396f85c25b69cb003019ab18f7b46db4ffba7afc8e743e9e1a7b908a5c343c095520058b4233a1ac08d040153d9237a4ea23e3ee6daeae418bab7ad3b99052d86a4da9b0694460720624d7d06016b0c4259f57aa0bb3e480b23d8c6e4c475cdb041a458bb11cf4aac9d0a19ea270701526a0e42d061bde58c2c432f444d071eb111fe7dfa926e1e9d2ff0d01fda84550800f4a4fb53d0776e6eb02bce07a37a70eee2fc6bbdff162f969b03d442e83bb6ce" + } + } +} \ No newline at end of file diff --git a/src/test/resources/method-json/info_get_deploy.json b/src/test/resources/method-json/info_get_deploy.json new file mode 100644 index 0000000..4580fb2 --- /dev/null +++ b/src/test/resources/method-json/info_get_deploy.json @@ -0,0 +1,207 @@ +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "api_version": "1.1.0", + "deploy": { + "hash": "5db09c0275c4c1ba54ebcc69784ed767350bf9c2b0be7ab4fec1ca84acd1c47d", + "header": { + "account": "01637772fddbe65f2abe17c1d83f8d1fa88da8754fbd344b12c49e76ade6a763c1", + "timestamp": "2021-05-01T21:57:41.408Z", + "ttl": "1h", + "gas_price": 1, + "body_hash": "fa4735dcc9de3decd1b82d8dd5c119fc4869cdc8c39970c89d4bc3140a24ad8d", + "dependencies": [], + "chain_name": "casper-test" + }, + "payment": { + "ModuleBytes": { + "module_bytes": "", + "args": [ + [ + "amount", + { + "cl_type": "U512", + "bytes": "04005ed0b2", + "parsed": "3000000000" + } + ] + ] + } + }, + "session": { + "ModuleBytes": { + "module_bytes": "0061736d01000000015b0e60027f7f017f60047f7f7f7f017f60017f0060077f7f7f7f7f7f7f017f60037f7f7f017f60000060037f7f7f0060027f7f0060017f017f60047f7f7f7f0060037f7e7e0060047f7f7e7e017e60057f7f7f7f7f017f60017f017e02710403656e76146361737065725f6765745f6e616d65645f617267000103656e760d6361737065725f726576657274000203656e761a6361737065725f7472616e736665725f746f5f6163636f756e74000303656e76196361737065725f6765745f6e616d65645f6172675f73697a650004033f3e050006010007060202080606020509060802070802020a0b02060800060100020900080c040902090008070608080809060d0607080707050206070d040404050170010b0b05030100110619037f01418080c0000b7f0041a889c0000b7f0041a889c0000b073705066d656d6f727902000463616c6c00040864656c656761746500110a5f5f646174615f656e6403010b5f5f686561705f6261736503020910010041010b0a232425262b2c2d2a3c3f0abb4c3e08001091808080000b1301017f20002001109f80808000210220020f0b0f0020002001200210a0808080000f0b1701017f200020012002200310a180808000210420040f0b1301017f2000200110a280808000210220020f0b0d002000200110ba808080000f0b7400024002402001417f4c0d000240024002402002450d0020010d01410121020c020b024020010d00410121020c020b2001410110858080800022020d010c030b200141011088808080002202450d020b20002001360204200020023602000f0b10bb80808000000b2001410110b980808000000b0b002000109080808000000b0b002000109080808000000b0a00200010b1808080000bdd07010a7f23808080800041f0016b2203248080808000200341086a20012002109d8080800002400240024002402003280208450d004101210402400240200328020c22050d0041002101410121020c010b200120022005109e808080002206200510808080800010b280808000220141ff01714128470d02200641ffff0371210220064180807c7121010b200341a0016a20022001722206200510af808080000240024020032d00a0014101470d000c010b200341e8016a2802002107410021042003200341ec016a28020022024100108a8080800020032802042101200328020022082007200210c0808080001a20034198016a200341e0016a29030037010020034190016a200341d8016a29030037010020034188016a200341d0016a29030037010020034180016a200341c8016a290300370100200341f8006a200341c0016a290300370100200341f0006a200341b8016a290300370100200341e8006a200341b0016a2903003701002003200341a8016a2903003701600b02402005450d002006200541011086808080000b200341146a200341da006a41c60010c0808080001a20040d02200341d8016a2204200341146a413e6a290100370300200341d0016a2206200341146a41366a290100370300200341c8016a2207200341146a412e6a290100370300200341c0016a2209200341146a41266a290100370300200341b8016a220a200341146a411e6a290100370300200341b0016a220b200341146a41166a290100370300200341a8016a220c200341146a410e6a2901003703002003200329011a3703a00141012105024020020d00200341da006a413e6a2004290300370100200341da006a41366a2006290300370100200341da006a412e6a2007290300370100200341da006a41266a2009290300370100200341da006a411e6a200a290300370100200341da006a41166a200b290300370100200341da006a410e6a200c290300370100200320032903a001370160410021050b02402001450d002008200141011086808080000b200341a0016a200341da006a41c60010c0808080001a20050d03200020032900a601370000200041386a200341de016a290000370000200041306a200341d6016a290000370000200041286a200341ce016a290000370000200041206a200341c6016a290000370000200041186a200341be016a290000370000200041106a200341b6016a290000370000200041086a200341ae016a290000370000200341f0016a2480808080000f0b4101108b80808000000b2006200541011086808080002001108c80808000000b200341a0016a200341da006a41c60010c0808080001a0b4102108c80808000000be606010a7f2380808080004180016b2203248080808000200341086a20012002109d808080000240024002402003280208450d004101210402400240200328020c22050d0041002101410121020c010b200120022005109e808080002206200510808080800010b280808000220141ff01714128470d02200641ffff0371210220064180807c7121010b200341d0006a20022001722207200510b6808080000240024020032d00504101470d000c010b200341f4006a2802002101410021042003200341f8006a28020022064100108a8080800020032802042102200328020022082001200610c0808080001a200341386a200341dd006a290000370300200341c0006a200341e5006a290000370300200341c7006a200341ec006a2900003700002003200329005537033020032d005421010b02402005450d002007200541011086808080000b200341106a41176a2205200341306a41176a2209290000370000200341106a41106a2207200341306a41106a220a290300370300200341106a41086a220b200341306a41086a220c2903003703002003200329033037031002400240024020040d00200341d0006a41176a2005290000370000200341d0006a41106a2007290300370300200341d0006a41086a200b290300370300200320032903103703502006450d0141012105410221010c020b200341d0006a41176a2009290000370000200341d0006a41106a200a290300370300200341d0006a41086a200c290300370300200320032903303703500c040b200341306a41176a200341d0006a41176a290000370000200341306a41106a200341d0006a41106a290300370300200341306a41086a200341d0006a41086a29030037030020032003290350370330410021050b02402002450d002008200241011086808080000b200341d0006a41176a2202200341306a41176a290000370000200341d0006a41106a2204200341306a41106a290300370300200341d0006a41086a2206200341306a41086a2903003703002003200329033037035020050d02200020013a000020002003290350370001200041096a2006290300370000200041116a2004290300370000200041186a200229000037000020034180016a2480808080000f0b4101108b80808000000b2006200541011086808080002001108c80808000000b4102108c80808000000b11002000108d80808000108180808000000bf30202017f017e23808080800041c0016b22002480808080002000418080c080004106108f80808000200041206a418680c080004106108e80808000200041e0006a41186a200041186a290300370300200041e0006a41106a200041106a290300370300200041e0006a41086a200041086a2903003703002000200029030037036020004180016a41386a200041206a41386a29030037030020004180016a41306a200041206a41306a29030037030020004180016a41286a200041206a41286a29030037030020004180016a41206a200041206a41206a29030037030020004180016a41186a200041206a41186a29030037030020004180016a41106a200041206a41106a29030037030020004180016a41086a200041206a41086a29030037030020002000290320370380010240200041e0006a20004180016a42002001109b80808000220142ffff0383500d002001a74110762001422088a741107472108c80808000000b200041c0016a2480808080000bb50101027f0240024002402002450d0041012104200141004e0d01410021010c020b2000200136020441012104410021010c010b024002400240024002400240200328020022050d002001450d010c030b200328020422030d0120010d020b200221030c030b20052003200220011087808080002203450d010c020b2001200210858080800022030d010b20002001360204200221010c010b20002003360204410021040b20002004360200200041086a20013602000be90101027f23808080800041206b2203248080808000024002400240200041046a280200220420016b20024f0d00200120026a22022001490d02200441017422012002200120024b1b22014108200141084b1b2101024002402004450d00200341106a41086a410136020020032004360214200320002802003602100c010b200341003602100b200320014101200341106a109280808000200341086a28020021012003280204210220032802004101460d0120002002360200200041046a20013602000b200341206a2480808080000f0b2001450d002002200110b980808000000b10bb80808000000b0a00200010b1808080000b040000000b040000000b0a00200010b0808080000b0b002000109c80808000000b11002000109780808000109c80808000000bf90301057f23808080800041306b22032480808080002003200237030820032001370300024002400240024002400240024020014201520d00200341086a220410b88080800041016a2205417f4c0d052005450d022005410110858080800022060d012005410110b980808000000b410141011085808080002205450d05200541003a0000200041003a0000200041086a428180808010370200200041046a20053602000c030b410021072003410036021820032005360214200320063602100c010b200341003602182003200536021420034101360210200341106a4100410110938080800020032802182107200328021021060b200620076a41013a00002003200328021841016a360218200341206a200410b780808000024020032d00204101460d00200341286a280200210620032802242104200341106a2003280218200341206a410c6a2802002205109380808000200328021020032802186a2004200510c0808080001a200041003a0000200041046a20032903103702002000410c6a200520032802186a2200360200200320003602182006450d012004200641011086808080000c010b20032d00212105200041013a0000200020053a000120032802142200450d002003280210200041011086808080000b200341306a2480808080000f0b10bb80808000000b4101410110b980808000000bdc0401057f23808080800041d0006b2204248080808000200441106a41186a2205200041186a290000370300200441106a41106a2206200041106a290000370300200441106a41086a2207200041086a29000037030020042000290000370310024002400240412041011085808080002200450d0020002004290310370000200041186a2005290300370000200041106a2006290300370000200041086a2007290300370000200441106a41386a200141386a290300370300200441106a41306a200141306a290300370300200441106a41286a200141286a290300370300200441106a41206a200141206a2903003703002005200141186a2903003703002006200141106a2903003703002007200141086a290300370300200420012903003703102004200441106a10ae8080800020042d00004101460d012004410c6a280200210720042802042101200441086a2802002105200441106a20022003109a8080800020042d00104101460d02200441106a41086a2802002106024002402000412020012007200428021422082004411c6a280200200441106a10828080800010b280808000220741ff01714128470d00200428021010b580808000210202402006450d002008200641011086808080000b2005450d012001200541011086808080000c010b2007ad421086210202402006450d002008200641011086808080000b200242018421022005450d002001200541011086808080000b200041204101108680808000200441d0006a24808080800020020f0b4120410110b980808000000b20042d0001109980808000000b20042d0011109980808000000b11002000109480808000108180808000000b7c01037f23808080800041106b2203248080808000410021042003410036020c02400240200120022003410c6a10838080800010b280808000220541ff017122024128460d0020024101460d012005109c80808000000b41012104200328020c21010b2000200136020420002004360200200341106a2480808080000b240002402000410110858080800022000d002000411074411372109880808000000b20000b120041a481c080002000200110a8808080000b140041a481c0800020002001200210a9808080000b4501017f024041a481c080002003200210a8808080002204450d002004200020032001200120034b1b10c0808080001a41a481c0800020002001200210a9808080000b20040b2900024041a481c080002000200110a8808080002201450d0020014100200010c1808080001a0b20010b02000b7701017f02400240200241027422022003410374418080016a2203200220034b1b418780046a220441107640002203417f470d0041012102410021030c010b20034110742203420037030041002102200341003602082003200320044180807c716a4102723602000b20002003360204200020023602000b05004180040b040041010bcf0401087f0240024020022802002205450d002001417f6a210620004102742107410020016b21080340200541086a210902402005280208220a410171450d0003402009200a417e71360200024002402005280204220a417c7122090d00410021010c010b4100200920092d00004101711b21010b02402005280200220b417c71220c450d004100200c200b4102711b220b450d00200b200b2802044103712009723602042005280204220a417c7121090b02402009450d00200920092802004103712005280200417c71723602002005280204210a0b2005200a41037136020420052005280200220941037136020002402009410271450d00200120012802004102723602000b20022001360200200141086a2109200121052001280208220a4101710d000b200121050b02402005280200417c71220120096b2007490d0002402009200320002004280210118080808000004102746a41086a200120076b20087122014d0d0020062009710d0120022009280200417c71360200200521010c040b20014100360200200141786a2201420037020020012005280200417c7136020002402005280200220a417c71220b450d004100200b200a4102711b220a450d00200a200a2802044103712001723602040b200120012802044103712005723602042005200528020041037120017236020020092009280200417e7136020020052802002209410271450d0320052009417d71360200200120012802004102723602000c030b20022005280208220536020020050d000b0b41000f0b20012001280200410172360200200141086a0ba40301037f23808080800041106b2203248080808000024002402001450d00200141036a220441027621050240200241044b0d002005417f6a220141ff014b0d00200320003602082003200020014102746a41046a220028020036020c0240200520022003410c6a200341086a41a480c0800010a78080800022010d002003200341086a2005200210ab808080004100210120032802000d0020032802042201200328020c3602082003200136020c200520022003410c6a200341086a41a480c0800010a78080800021010b2000200328020c3602000c020b2003200028020036020c0240200520022003410c6a418c80c08000418c80c0800010a78080800022010d0002402004417c7122012002410374418080016a2204200120044b1b418780046a220441107640002201417f470d00410021010c010b20014110742201200120044180807c716a410272360200200141003602042001200328020c3602082003200136020c200520022003410c6a418c80c08000418c80c0800010a78080800021010b2000200328020c3602000c010b200221010b200341106a24808080800020010b860601067f23808080800041106b220424808080800002402001450d002002450d000240200341044b0d00200241036a410276417f6a220241ff014b0d00200020024102746a41046a2203280200210520014100360200200141786a22022002280200417e713602002004200036020c02402004410c6a10ad80808000450d00024002402001417c6a2206280200417c712200450d0020002802002207410171450d010b20022802002200417c712206450d014100200620004102711b2200450d0120002d00004101710d0120012000280208417c7136020020002002410172360208200320053602000c030b02400240024020022802002208417c7122010d00200021090c010b200021094100200120084102711b2208450d002008200828020441037120007236020420062802002201417c712209450d012002280200417c712101200928020021070b20092007410371200172360200200628020021010b20062001410371360200200220022802002201410371360200024020014102710d00200320053602000c030b20002000280200410272360200200320053602000c020b20012005360200200320023602000c010b2000280200210620014100360200200141786a220220022802002203417e7136020002400240024002402001417c6a2207280200417c712205450d0020052802002209410171450d010b2003417c712205450d014100200520034102711b2203450d0120032d00004101710d0120012003280208417c7136020020032002410172360208200621020c020b0240024002402003417c7122010d00200521080c010b200521084100200120034102711b2203450d002003200328020441037120057236020420072802002201417c712208450d012002280200417c712101200828020021090b20082009410371200172360200200728020021010b20072001410371360200200220022802002201410371360200024020014102710d00200621020c020b20052005280200410272360200200621020c010b200120063602000b200020023602000b200441106a2480808080000b02000b960201027f23808080800041106b220424808080800020042001280200220528020036020c024002400240200241026a220220026c220241801020024180104b1b220141042004410c6a41bc80c0800041bc80c0800010a7808080002202450d002005200428020c3602000c010b200441bc80c080002001410410a480808000024002402004280200450d002005200428020c3602000c010b20042802042202200428020c3602082004200236020c200141042004410c6a41bc80c0800041bc80c0800010a78080800021022005200428020c36020020020d010b410121010c010b200242003702042002200220014102746a410272360200410021010b2000200236020420002001360200200441106a2480808080000b040020010b040041000bb20401047f23808080800041e0006b22022480808080002002200129030037030020022001290308370308200220012903103703102002200129031837031820022001290320370320200220012903283703282002200129033037033020022001290338370338413f21010240024002400240024003402001417f460d01200220016a21032001417f6a2204210120032d00002203450d000b410141011085808080002201450d04200120033a00002002428180808010370254200220013602502004417f460d0141022101410121030340200220046a2d0000210502402001417f6a2003470d00200241d0006a2003410110b4808080000b200228025020016a417f6a20053a0000200220013602582004450d022004417f6a2104200141016a2101200228025421030c000b0b410021012002410036024820024201370340410021040c010b200241c0006a41086a200241d0006a41086a280200220136020020022002290350370340200120022802442204470d010b200241c0006a2004410110b4808080000b200228024020022802486a20013a000020022002280248220441016a2201360248024020014101762203450d002002280240220120046a2104034020012d00002105200120042d00003a0000200420053a0000200141016a21012004417f6a21042003417f6a22030d000b0b200041003a0000200041046a20022903403702002000410c6a200241c8006a280200360200200241e0006a2480808080000f0b4101410110b980808000000bcd0202047f087e23808080800041c0006b220324808080800002400240024002402002450d004101210420012d0000220541c0004b0d0102402002417f6a22062005490d00200141016a210141002104200320056a410041c00020056b10c1808080001a20032001200510c0808080002202290300210720022903082108200229031021092002290318210a2002290320210b2002290328210c2002290330210d2002290338210e200041cc006a200620056b360200200041c8006a200120056a360200200041c0006a200e370300200041386a200d370300200041306a200c370300200041286a200b370300200041206a200a370300200041186a2009370300200041106a2008370300200041086a20073703000c040b200041003a00010c020b200041003a00010c010b200041013a00010c010b410121040b200020043a0000200341c0006a2480808080000b0b00200041ff017141106a0bdc0201027f20004108762101410121020240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041ff01710e28270102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324252600270b200041107641808004720f0b41020f0b41030f0b41040f0b41050f0b41060f0b41070f0b41080f0b41090f0b410a0f0b410b0f0b410c0f0b410d0f0b410e0f0b410f0f0b41100f0b41110f0b41120f0b41130f0b41140f0b41150f0b41160f0b41170f0b41180f0b41190f0b411a0f0b411b0f0b411c0f0b411d0f0b411e0f0b411f0f0b41200f0b41210f0b41220f0b41230f0b200141ff01714180f803720f0b200141ff01714180fa03720f0b200141ff01714180fc03720f0b200141ff01714180fe037221020b20020b9d0501047f410021014128210241002103410021040240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024020000e2428270102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122000b20004180807c7141808004460d22200041807e7122024180fa03460d2420024180fc03460d2341262104410021032000210120024180fe03460d264123411e20024180f8034622021b2104410021032000410020021b21010c260b41012104410021030c250b41022104410021030c240b41032104410021030c230b41042104410021030c220b41052104410021030c210b41062104410021030c200b41072104410021030c1f0b41082104410021030c1e0b41092104410021030c1d0b410a2104410021030c1c0b410b2104410021030c1b0b410c2104410021030c1a0b410d2104410021030c190b410e2104410021030c180b410f2104410021030c170b41102104410021030c160b41112104410021030c150b41122104410021030c140b41132104410021030c130b41142104410021030c120b41152104410021030c110b41162104410021030c100b41172104410021030c0f0b41182104410021030c0e0b41192104410021030c0d0b411a2104410021030c0c0b411b2104410021030c0b0b411c2104410021030c0a0b411d2104410021030c090b411e2104410021030c080b411f2104410021030c070b41202104410021030c060b41212104410021030c050b41222104410021030c040b20004110742103412721040c030b412521040c010b412421040b41002103200021010b20014108744180fe03712003722100200421020b20022000720bb50101027f0240024002402002450d0041012104200141004e0d01410021010c020b2000200136020441012104410021010c010b024002400240024002400240200328020022050d002001450d010c030b200328020422030d0120010d020b200221030c030b20052003200220011087808080002203450d010c020b2001200210858080800022030d010b20002001360204200221010c010b20002003360204410021040b20002004360200200041086a20013602000be90101027f23808080800041206b2203248080808000024002400240200041046a280200220420016b20024f0d00200120026a22022001490d02200441017422012002200120024b1b22014108200141084b1b2101024002402004450d00200341106a41086a410136020020032004360214200320002802003602100c010b200341003602100b200320014101200341106a10b380808000200341086a28020021012003280204210220032802004101460d0120002002360200200041046a20013602000b200341206a2480808080000f0b2001450d002002200110b980808000000b10bb80808000000b2d01017e4200210102400240024020000e020200010b428080b480104200840f0b420121010b428080342001840bcc0202047f047e23808080800041d0006b2103024020024120490d00200341286a410a6a200141086a290000370100200341286a41126a200141106a290000370100200341286a411a6a200141186a2900003701002003200129000037012a200341086a200341286a41086a2204290100370300200341106a200341286a41106a2205290100370300200341186a200341286a41186a2206290100370300200341206a200341286a41206a2f01003b01002003200329012837030020062003411a6a29010022073703002005200341126a290100220837030020042003410a6a290100220937030020032003290102220a3703282000411c6a2007370000200041146a20083700002000410c6a2009370000200041046a200a370000200041286a200241606a360200200041246a200141206a360200200041003a00000f0b200041003a0001200041013a00000b4e01017e2001290300210202404108410110858080800022010d004108410110b980808000000b20012002370000200041003a0000200041086a42888080808001370200200041046a20013602000b040041080b0d0020002001108980808000000b0d0020002001109680808000000b170041f080c080004111418481c0800010bd80808000000b02000b5401017f23808080800041206b2203248080808000200341146a41003602002003419481c08000360210200342013702042003200136021c200320003602182003200341186a3602002003200210be80808000000b4201017f23808080800041106b22022480808080002002200136020c200220003602082002419481c080003602042002419481c080003602002002109580808000000b0c0042f88fc8f48eac98b6280b3601017f02402002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b2c01017f02402002450d00200021030340200320013a0000200341016a21032002417f6a22020d000b0b20000b0bae010100418080c0000ba401746172676574616d6f756e740100000000000000010000000200000003000000040000000100000004000000040000000500000006000000070000000800000000000000010000000200000003000000040000006c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f77000000540010001c00000019020000050000000900000000000000010000000a000000", + "args": [ + [ + "amount", + { + "cl_type": "U512", + "bytes": "0500863ba101", + "parsed": "7000000000" + } + ], + [ + "target", + { + "cl_type": { + "ByteArray": 32 + }, + "bytes": "358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4", + "parsed": "358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4" + } + ] + ] + } + }, + "approvals": [ + { + "signer": "01637772fddbe65f2abe17c1d83f8d1fa88da8754fbd344b12c49e76ade6a763c1", + "signature": "01c9bb84725db1ca04e27abb0911c9f7acf181446b1087a17f2c8a7a9b20ec0de660e65ef47c7024bf16e336179afe4a31a8268cf08eb4ea945e0d59a51df28305" + } + ] + }, + "execution_results": [ + { + "block_hash": "e2800c21cb3c93b8e82fd348e044456f326bfbfce140bc00581800cce8a18fd4", + "result": { + "Success": { + "effect": { + "operations": [ + { + "key": "balance-88aa71c64a5511299a258a0f707984476a10929f80bf152936528582095621d5", + "kind": "Write" + }, + { + "key": "deploy-5db09c0275c4c1ba54ebcc69784ed767350bf9c2b0be7ab4fec1ca84acd1c47d", + "kind": "Write" + }, + { + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "kind": "Read" + }, + { + "key": "balance-bb9f47c30ddbe192438fad10b7db8200247529d6592af7159d92c5f3aa7716a1", + "kind": "Write" + }, + { + "key": "transfer-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54", + "kind": "Write" + }, + { + "key": "balance-98d945f5324f865243b7c02c0417ab6eac361c5c56602fd42ced834a1ba201b6", + "kind": "Read" + }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", + "kind": "Read" + }, + { + "key": "balance-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54", + "kind": "Write" + }, + { + "key": "uref-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54-000", + "kind": "Write" + }, + { + "key": "account-hash-358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4", + "kind": "Write" + } + ], + "transforms": [ + { + "key": "transfer-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54", + "transform": { + "WriteTransfer": { + "deploy_hash": "5db09c0275c4c1ba54ebcc69784ed767350bf9c2b0be7ab4fec1ca84acd1c47d", + "from": "account-hash-cfdcd5e6aea50288bcaad51f796f284d5fcc99d9557e29e7ab357e01d27c3341", + "to": "account-hash-358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4", + "source": "uref-88aa71c64a5511299a258a0f707984476a10929f80bf152936528582095621d5-007", + "target": "uref-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54-004", + "amount": "7000000000", + "gas": "0", + "id": null + } + } + }, + { + "key": "account-hash-358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4", + "transform": { + "WriteAccount": "account-hash-358a81b723a2b7e5c7bfafe8779f5856c7d18822942c977642f6b94efb2b95d4" + } + }, + { + "key": "balance-bb9f47c30ddbe192438fad10b7db8200247529d6592af7159d92c5f3aa7716a1", + "transform": { + "AddUInt512": "3000000000" + } + }, + { + "key": "balance-98d945f5324f865243b7c02c0417ab6eac361c5c56602fd42ced834a1ba201b6", + "transform": "Identity" + }, + { + "key": "balance-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54", + "transform": { + "WriteCLValue": { + "cl_type": "U512", + "bytes": "0500863ba101", + "parsed": "7000000000" + } + } + }, + { + "key": "uref-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54-000", + "transform": { + "WriteCLValue": { + "cl_type": "Unit", + "bytes": "", + "parsed": null + } + } + }, + { + "key": "hash-010c3fe81b7b862e50c77ef9a958a05bfa98444f26f96f23d37a13c96244cfb7", + "transform": "Identity" + }, + { + "key": "balance-88aa71c64a5511299a258a0f707984476a10929f80bf152936528582095621d5", + "transform": { + "WriteCLValue": { + "cl_type": "U512", + "bytes": "050064be3a11", + "parsed": "74000000000" + } + } + }, + { + "key": "deploy-5db09c0275c4c1ba54ebcc69784ed767350bf9c2b0be7ab4fec1ca84acd1c47d", + "transform": { + "WriteDeployInfo": { + "deploy_hash": "5db09c0275c4c1ba54ebcc69784ed767350bf9c2b0be7ab4fec1ca84acd1c47d", + "transfers": [ + "transfer-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54" + ], + "from": "account-hash-cfdcd5e6aea50288bcaad51f796f284d5fcc99d9557e29e7ab357e01d27c3341", + "source": "uref-88aa71c64a5511299a258a0f707984476a10929f80bf152936528582095621d5-007", + "gas": "75430400" + } + } + }, + { + "key": "hash-8cf5e4acf51f54eb59291599187838dc3bc234089c46fc6ca8ad17e762ae4401", + "transform": "Identity" + } + ] + }, + "transfers": [ + "transfer-ee399206b4c7bc92aa823b8811e8b990a2f05ae9e9eb6de2c04fb0df6d7c2b54" + ], + "cost": "75430400" + } + } + } + ] + } +} \ No newline at end of file From 7cfb1d3edae8fab551a276d8836d3d72d36173c0 Mon Sep 17 00:00:00 2001 From: Ss Date: Sat, 9 Oct 2021 02:41:43 +1100 Subject: [PATCH 2/2] Added functionality to retrieve node metrics from the node. --- .../com/casper/sdk/controller/CasperSdk.java | 6 + .../casper/sdk/service/MetricsService.java | 21 + .../sdk/service/http/rest/RestMethods.java | 38 ++ .../com/casper/sdk/TestMetricsService.java | 82 +++ .../resources/method-json/node-metrics.txt | 466 ++++++++++++++++++ 5 files changed, 613 insertions(+) create mode 100644 src/main/java/com/casper/sdk/service/MetricsService.java create mode 100644 src/main/java/com/casper/sdk/service/http/rest/RestMethods.java create mode 100644 src/test/java/com/casper/sdk/TestMetricsService.java create mode 100644 src/test/resources/method-json/node-metrics.txt diff --git a/src/main/java/com/casper/sdk/controller/CasperSdk.java b/src/main/java/com/casper/sdk/controller/CasperSdk.java index 032b26b..3b7c901 100644 --- a/src/main/java/com/casper/sdk/controller/CasperSdk.java +++ b/src/main/java/com/casper/sdk/controller/CasperSdk.java @@ -1,5 +1,6 @@ package com.casper.sdk.controller; +import com.casper.sdk.service.MetricsService; import org.apache.commons.codec.DecoderException; import com.casper.sdk.Properties; import com.casper.sdk.service.HashService; @@ -14,11 +15,13 @@ public class CasperSdk { private final QueryService queryService; + private final MetricsService metricsService; public CasperSdk(final String url, final String port) { Properties.properties.put("node-url", url); Properties.properties.put("node-port", port); this.queryService = new QueryService(); + this.metricsService = new MetricsService(); } public String getAccountInfo(final String accountKey) throws Throwable { @@ -73,4 +76,7 @@ public String getRpcSchema() throws Throwable { return queryService.getRpcSchema(); } + public String getNodeMetrics() throws Throwable { + return metricsService.getMetrics(); + } } diff --git a/src/main/java/com/casper/sdk/service/MetricsService.java b/src/main/java/com/casper/sdk/service/MetricsService.java new file mode 100644 index 0000000..927bdf7 --- /dev/null +++ b/src/main/java/com/casper/sdk/service/MetricsService.java @@ -0,0 +1,21 @@ +package com.casper.sdk.service; + +import com.casper.sdk.service.http.rest.RestMethods; + +import java.util.Optional; + +public class MetricsService { + + RestMethods restMethods; + + public MetricsService(){ + restMethods = new RestMethods(); + } + + public String getMetrics() throws Throwable { + + Optional result = restMethods.restCallGetMethod("metrics"); + return (result.isEmpty()) ? null : result.get(); + + } +} diff --git a/src/main/java/com/casper/sdk/service/http/rest/RestMethods.java b/src/main/java/com/casper/sdk/service/http/rest/RestMethods.java new file mode 100644 index 0000000..89d0d80 --- /dev/null +++ b/src/main/java/com/casper/sdk/service/http/rest/RestMethods.java @@ -0,0 +1,38 @@ +package com.casper.sdk.service.http.rest; + +import com.casper.sdk.Properties; +import com.casper.sdk.exceptions.HttpException; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.Optional; + +public class RestMethods { + + public Optional restCallGetMethod(final String url) throws HttpException { + + try{ + final HttpRequest request = HttpRequest.newBuilder() + .uri(new URI( + new StringBuilder().append(Properties.properties.get("node-url")).append(":") + .append(Properties.properties.get("node-port")).append("/").append(url).toString())) + .header("Accept", "application/json") + .header("Content-type", "application/json") + .GET() + .build(); + + final HttpResponse response = HttpClient.newBuilder() + .build() + .send(request, HttpResponse.BodyHandlers.ofString()); + + return Optional.ofNullable(response.body()); + + } catch (Exception e) { + throw new HttpException(e.getMessage()); + } + + } + +} diff --git a/src/test/java/com/casper/sdk/TestMetricsService.java b/src/test/java/com/casper/sdk/TestMetricsService.java new file mode 100644 index 0000000..d36f173 --- /dev/null +++ b/src/test/java/com/casper/sdk/TestMetricsService.java @@ -0,0 +1,82 @@ +package com.casper.sdk; + +import com.casper.sdk.service.MetricsService; +import okhttp3.mockwebserver.Dispatcher; +import okhttp3.mockwebserver.MockResponse; +import okhttp3.mockwebserver.MockWebServer; +import okhttp3.mockwebserver.RecordedRequest; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +public class TestMetricsService { + + private final static String url = "http://localhost"; + + private static MockWebServer mockBackEnd; + private final MetricsService metricsService = new MetricsService(); + + @BeforeAll + static void init() throws IOException { + mockBackEnd = new MockWebServer(); + mockBackEnd.start(); + } + + @Test + public void testStateRootOk() throws Throwable { + + Properties.properties.put("node-url", url); + Properties.properties.put("node-port", String.valueOf(mockBackEnd.getPort())); + + mockBackEnd.setDispatcher( + new MethodDispatcher()); + + String nodeMetrics = metricsService.getMetrics(); + + assertNotNull(nodeMetrics); + + } + + private static final class MethodDispatcher extends Dispatcher { + + private final ClassLoader classLoader = getClass().getClassLoader(); + private String responseBodyFile; + + public MethodDispatcher() {} + + @NotNull + @Override + public MockResponse dispatch(RecordedRequest request) { + + if (request.getRequestUrl().toString().contains("metrics")) { + responseBodyFile = "method-json/node-metrics.txt"; + } + + if ( responseBodyFile != null ) { + return new MockResponse().setResponseCode(200) + .addHeader("Content-Type", "application/text") + .setBody(loadResponse(responseBodyFile)); + } else { + return new MockResponse().setResponseCode(404); + } + } + + private String loadResponse(final String fileName) { + try { + return String.join("", Files.readAllLines(Paths.get(classLoader.getResource(fileName).toURI()))); + } catch (final IOException | NullPointerException | URISyntaxException e) { + throw new IllegalStateException("Unable to load mock response from file", e); + } + } + + } + + +} \ No newline at end of file diff --git a/src/test/resources/method-json/node-metrics.txt b/src/test/resources/method-json/node-metrics.txt new file mode 100644 index 0000000..14abf82 --- /dev/null +++ b/src/test/resources/method-json/node-metrics.txt @@ -0,0 +1,466 @@ +# HELP address_gossiper_items_received number of items received by the address_gossiper +# TYPE address_gossiper_items_received counter +address_gossiper_items_received 12356227 +# HELP address_gossiper_table_items_current number of items in the gossip table of address_gossiper in state current +# TYPE address_gossiper_table_items_current gauge +address_gossiper_table_items_current 6 +# HELP address_gossiper_table_items_finished number of items in the gossip table of address_gossiper in state finished +# TYPE address_gossiper_table_items_finished gauge +address_gossiper_table_items_finished 921 +# HELP address_gossiper_table_items_paused number of items in the gossip table of address_gossiper in state paused +# TYPE address_gossiper_table_items_paused gauge +address_gossiper_table_items_paused 0 +# HELP address_gossiper_times_gossiped number of times the address_gossiper sent gossip requests to peers +# TYPE address_gossiper_times_gossiped counter +address_gossiper_times_gossiped 120803712 +# HELP address_gossiper_times_ran_out_of_peers number of times the address_gossiper ran out of peers and had to pause +# TYPE address_gossiper_times_ran_out_of_peers counter +address_gossiper_times_ran_out_of_peers 3 +# HELP allocated_ram_bytes total allocated ram in bytes +# TYPE allocated_ram_bytes gauge +allocated_ram_bytes 782135680 +# HELP amount_of_blocks the number of blocks finalized so far +# TYPE amount_of_blocks gauge +amount_of_blocks 20693 +# HELP block_completion_duration duration of time from consensus through execution for a block +# TYPE block_completion_duration gauge +block_completion_duration 44290 +# HELP chain_height current chain height +# TYPE chain_height gauge +chain_height 20693 +# HELP consumed_ram_bytes total consumed ram in bytes +# TYPE consumed_ram_bytes gauge +consumed_ram_bytes 3257278464 +# HELP contract_runtime_apply_commit tracking run of engine_state.apply_effect in seconds. +# TYPE contract_runtime_apply_commit histogram +contract_runtime_apply_commit_bucket{le="0.01"} 451 +contract_runtime_apply_commit_bucket{le="0.02"} 868 +contract_runtime_apply_commit_bucket{le="0.04"} 955 +contract_runtime_apply_commit_bucket{le="0.08"} 980 +contract_runtime_apply_commit_bucket{le="0.16"} 980 +contract_runtime_apply_commit_bucket{le="0.32"} 980 +contract_runtime_apply_commit_bucket{le="0.64"} 980 +contract_runtime_apply_commit_bucket{le="1.28"} 980 +contract_runtime_apply_commit_bucket{le="2.56"} 980 +contract_runtime_apply_commit_bucket{le="5.12"} 980 +contract_runtime_apply_commit_bucket{le="+Inf"} 980 +contract_runtime_apply_commit_sum 12.717766251000008 +contract_runtime_apply_commit_count 980 +# HELP contract_runtime_commit_step tracking run of engine_state.commit_step in seconds. +# TYPE contract_runtime_commit_step histogram +contract_runtime_commit_step_bucket{le="0.01"} 0 +contract_runtime_commit_step_bucket{le="0.02"} 0 +contract_runtime_commit_step_bucket{le="0.04"} 0 +contract_runtime_commit_step_bucket{le="0.08"} 0 +contract_runtime_commit_step_bucket{le="0.16"} 0 +contract_runtime_commit_step_bucket{le="0.32"} 0 +contract_runtime_commit_step_bucket{le="0.64"} 92 +contract_runtime_commit_step_bucket{le="1.28"} 108 +contract_runtime_commit_step_bucket{le="2.56"} 108 +contract_runtime_commit_step_bucket{le="5.12"} 108 +contract_runtime_commit_step_bucket{le="+Inf"} 108 +contract_runtime_commit_step_sum 58.18317743099998 +contract_runtime_commit_step_count 108 +# HELP contract_runtime_commit_upgrade tracking run of engine_state.commit_upgrade in seconds +# TYPE contract_runtime_commit_upgrade histogram +contract_runtime_commit_upgrade_bucket{le="0.01"} 1 +contract_runtime_commit_upgrade_bucket{le="0.02"} 1 +contract_runtime_commit_upgrade_bucket{le="0.04"} 1 +contract_runtime_commit_upgrade_bucket{le="0.08"} 1 +contract_runtime_commit_upgrade_bucket{le="0.16"} 1 +contract_runtime_commit_upgrade_bucket{le="0.32"} 1 +contract_runtime_commit_upgrade_bucket{le="0.64"} 1 +contract_runtime_commit_upgrade_bucket{le="1.28"} 1 +contract_runtime_commit_upgrade_bucket{le="2.56"} 1 +contract_runtime_commit_upgrade_bucket{le="5.12"} 1 +contract_runtime_commit_upgrade_bucket{le="+Inf"} 1 +contract_runtime_commit_upgrade_sum 0.002843508 +contract_runtime_commit_upgrade_count 1 +# HELP contract_runtime_get_balance tracking run of engine_state.get_balance in seconds. +# TYPE contract_runtime_get_balance histogram +contract_runtime_get_balance_bucket{le="0.01"} 4 +contract_runtime_get_balance_bucket{le="0.02"} 4 +contract_runtime_get_balance_bucket{le="0.04"} 4 +contract_runtime_get_balance_bucket{le="0.08"} 4 +contract_runtime_get_balance_bucket{le="0.16"} 4 +contract_runtime_get_balance_bucket{le="0.32"} 4 +contract_runtime_get_balance_bucket{le="0.64"} 4 +contract_runtime_get_balance_bucket{le="1.28"} 4 +contract_runtime_get_balance_bucket{le="2.56"} 4 +contract_runtime_get_balance_bucket{le="5.12"} 4 +contract_runtime_get_balance_bucket{le="+Inf"} 4 +contract_runtime_get_balance_sum 0.000692233 +contract_runtime_get_balance_count 4 +# HELP contract_runtime_get_bids tracking run of engine_state.get_bids in seconds. +# TYPE contract_runtime_get_bids histogram +contract_runtime_get_bids_bucket{le="0.01"} 0 +contract_runtime_get_bids_bucket{le="0.02"} 0 +contract_runtime_get_bids_bucket{le="0.04"} 0 +contract_runtime_get_bids_bucket{le="0.08"} 3 +contract_runtime_get_bids_bucket{le="0.16"} 3 +contract_runtime_get_bids_bucket{le="0.32"} 3 +contract_runtime_get_bids_bucket{le="0.64"} 3 +contract_runtime_get_bids_bucket{le="1.28"} 3 +contract_runtime_get_bids_bucket{le="2.56"} 3 +contract_runtime_get_bids_bucket{le="5.12"} 3 +contract_runtime_get_bids_bucket{le="+Inf"} 3 +contract_runtime_get_bids_sum 0.18011864 +contract_runtime_get_bids_count 3 +# HELP contract_runtime_get_era_validator_weights_by_era_id tracking run of engine_state.get_era_validator_weights_by_era_id in seconds. +# TYPE contract_runtime_get_era_validator_weights_by_era_id histogram +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.01"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.02"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.04"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.08"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.16"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.32"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="0.64"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="1.28"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="2.56"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="5.12"} 0 +contract_runtime_get_era_validator_weights_by_era_id_bucket{le="+Inf"} 0 +contract_runtime_get_era_validator_weights_by_era_id_sum 0 +contract_runtime_get_era_validator_weights_by_era_id_count 0 +# HELP contract_runtime_get_era_validators tracking run of engine_state.get_era_validators in seconds. +# TYPE contract_runtime_get_era_validators histogram +contract_runtime_get_era_validators_bucket{le="0.01"} 4 +contract_runtime_get_era_validators_bucket{le="0.02"} 4 +contract_runtime_get_era_validators_bucket{le="0.04"} 4 +contract_runtime_get_era_validators_bucket{le="0.08"} 4 +contract_runtime_get_era_validators_bucket{le="0.16"} 4 +contract_runtime_get_era_validators_bucket{le="0.32"} 4 +contract_runtime_get_era_validators_bucket{le="0.64"} 4 +contract_runtime_get_era_validators_bucket{le="1.28"} 4 +contract_runtime_get_era_validators_bucket{le="2.56"} 4 +contract_runtime_get_era_validators_bucket{le="5.12"} 4 +contract_runtime_get_era_validators_bucket{le="+Inf"} 4 +contract_runtime_get_era_validators_sum 0.029983994 +contract_runtime_get_era_validators_count 4 +# HELP contract_runtime_get_validator_weights tracking run of engine_state.get_validator_weights in seconds. +# TYPE contract_runtime_get_validator_weights histogram +contract_runtime_get_validator_weights_bucket{le="0.01"} 137 +contract_runtime_get_validator_weights_bucket{le="0.02"} 150 +contract_runtime_get_validator_weights_bucket{le="0.04"} 150 +contract_runtime_get_validator_weights_bucket{le="0.08"} 150 +contract_runtime_get_validator_weights_bucket{le="0.16"} 150 +contract_runtime_get_validator_weights_bucket{le="0.32"} 150 +contract_runtime_get_validator_weights_bucket{le="0.64"} 150 +contract_runtime_get_validator_weights_bucket{le="1.28"} 150 +contract_runtime_get_validator_weights_bucket{le="2.56"} 150 +contract_runtime_get_validator_weights_bucket{le="5.12"} 150 +contract_runtime_get_validator_weights_bucket{le="+Inf"} 150 +contract_runtime_get_validator_weights_sum 1.0300366239999998 +contract_runtime_get_validator_weights_count 150 +# HELP contract_runtime_missing_trie_keys tracking run of engine_state.missing_trie_keys in seconds. +# TYPE contract_runtime_missing_trie_keys histogram +contract_runtime_missing_trie_keys_bucket{le="0.01"} 0 +contract_runtime_missing_trie_keys_bucket{le="0.02"} 0 +contract_runtime_missing_trie_keys_bucket{le="0.04"} 0 +contract_runtime_missing_trie_keys_bucket{le="0.08"} 0 +contract_runtime_missing_trie_keys_bucket{le="0.16"} 0 +contract_runtime_missing_trie_keys_bucket{le="0.32"} 0 +contract_runtime_missing_trie_keys_bucket{le="0.64"} 0 +contract_runtime_missing_trie_keys_bucket{le="1.28"} 0 +contract_runtime_missing_trie_keys_bucket{le="2.56"} 0 +contract_runtime_missing_trie_keys_bucket{le="5.12"} 0 +contract_runtime_missing_trie_keys_bucket{le="+Inf"} 0 +contract_runtime_missing_trie_keys_sum 0 +contract_runtime_missing_trie_keys_count 0 +# HELP contract_runtime_put_trie tracking run of engine_state.put_trie in seconds. +# TYPE contract_runtime_put_trie histogram +contract_runtime_put_trie_bucket{le="0.01"} 0 +contract_runtime_put_trie_bucket{le="0.02"} 0 +contract_runtime_put_trie_bucket{le="0.04"} 0 +contract_runtime_put_trie_bucket{le="0.08"} 0 +contract_runtime_put_trie_bucket{le="0.16"} 0 +contract_runtime_put_trie_bucket{le="0.32"} 0 +contract_runtime_put_trie_bucket{le="0.64"} 0 +contract_runtime_put_trie_bucket{le="1.28"} 0 +contract_runtime_put_trie_bucket{le="2.56"} 0 +contract_runtime_put_trie_bucket{le="5.12"} 0 +contract_runtime_put_trie_bucket{le="+Inf"} 0 +contract_runtime_put_trie_sum 0 +contract_runtime_put_trie_count 0 +# HELP contract_runtime_read_trie tracking run of engine_state.read_trie in seconds. +# TYPE contract_runtime_read_trie histogram +contract_runtime_read_trie_bucket{le="0.01"} 0 +contract_runtime_read_trie_bucket{le="0.02"} 0 +contract_runtime_read_trie_bucket{le="0.04"} 0 +contract_runtime_read_trie_bucket{le="0.08"} 0 +contract_runtime_read_trie_bucket{le="0.16"} 0 +contract_runtime_read_trie_bucket{le="0.32"} 0 +contract_runtime_read_trie_bucket{le="0.64"} 0 +contract_runtime_read_trie_bucket{le="1.28"} 0 +contract_runtime_read_trie_bucket{le="2.56"} 0 +contract_runtime_read_trie_bucket{le="5.12"} 0 +contract_runtime_read_trie_bucket{le="+Inf"} 0 +contract_runtime_read_trie_sum 0 +contract_runtime_read_trie_count 0 +# HELP contract_runtime_run_execute tracking run of engine_state.run_execute in seconds. +# TYPE contract_runtime_run_execute histogram +contract_runtime_run_execute_bucket{le="0.01"} 187 +contract_runtime_run_execute_bucket{le="0.02"} 448 +contract_runtime_run_execute_bucket{le="0.04"} 638 +contract_runtime_run_execute_bucket{le="0.08"} 980 +contract_runtime_run_execute_bucket{le="0.16"} 980 +contract_runtime_run_execute_bucket{le="0.32"} 980 +contract_runtime_run_execute_bucket{le="0.64"} 980 +contract_runtime_run_execute_bucket{le="1.28"} 980 +contract_runtime_run_execute_bucket{le="2.56"} 980 +contract_runtime_run_execute_bucket{le="5.12"} 980 +contract_runtime_run_execute_bucket{le="+Inf"} 980 +contract_runtime_run_execute_sum 27.361156314000024 +contract_runtime_run_execute_count 980 +# HELP contract_runtime_run_query tracking run of engine_state.run_query in seconds. +# TYPE contract_runtime_run_query histogram +contract_runtime_run_query_bucket{le="0.01"} 5 +contract_runtime_run_query_bucket{le="0.02"} 5 +contract_runtime_run_query_bucket{le="0.04"} 5 +contract_runtime_run_query_bucket{le="0.08"} 5 +contract_runtime_run_query_bucket{le="0.16"} 5 +contract_runtime_run_query_bucket{le="0.32"} 5 +contract_runtime_run_query_bucket{le="0.64"} 5 +contract_runtime_run_query_bucket{le="1.28"} 5 +contract_runtime_run_query_bucket{le="2.56"} 5 +contract_runtime_run_query_bucket{le="5.12"} 5 +contract_runtime_run_query_bucket{le="+Inf"} 5 +contract_runtime_run_query_sum 0.005355526000000001 +contract_runtime_run_query_count 5 +# HELP current_era The current era +# TYPE current_era gauge +current_era 274 +# HELP deploy_found_in_storage number of fetch requests that found deploy in the storage. +# TYPE deploy_found_in_storage counter +deploy_found_in_storage 994 +# HELP deploy_found_on_peer number of fetch requests that fetched deploy from peer. +# TYPE deploy_found_on_peer counter +deploy_found_on_peer 1005 +# HELP deploy_gossiper_items_received number of items received by the deploy_gossiper +# TYPE deploy_gossiper_items_received counter +deploy_gossiper_items_received 2081 +# HELP deploy_gossiper_table_items_current number of items in the gossip table of deploy_gossiper in state current +# TYPE deploy_gossiper_table_items_current gauge +deploy_gossiper_table_items_current 0 +# HELP deploy_gossiper_table_items_finished number of items in the gossip table of deploy_gossiper in state finished +# TYPE deploy_gossiper_table_items_finished gauge +deploy_gossiper_table_items_finished 0 +# HELP deploy_gossiper_table_items_paused number of items in the gossip table of deploy_gossiper in state paused +# TYPE deploy_gossiper_table_items_paused gauge +deploy_gossiper_table_items_paused 0 +# HELP deploy_gossiper_times_gossiped number of times the deploy_gossiper sent gossip requests to peers +# TYPE deploy_gossiper_times_gossiped counter +deploy_gossiper_times_gossiped 10191 +# HELP deploy_gossiper_times_ran_out_of_peers number of times the deploy_gossiper ran out of peers and had to pause +# TYPE deploy_gossiper_times_ran_out_of_peers counter +deploy_gossiper_times_ran_out_of_peers 0 +# HELP deploy_timeouts number of deploy fetch requests that timed out +# TYPE deploy_timeouts counter +deploy_timeouts 4 +# HELP event_dispatch_duration duration of complete dispatch of a single event in nanoseconds +# TYPE event_dispatch_duration histogram +event_dispatch_duration_bucket{le="100"} 56 +event_dispatch_duration_bucket{le="500"} 42323531 +event_dispatch_duration_bucket{le="1000"} 103735021 +event_dispatch_duration_bucket{le="5000"} 557151890 +event_dispatch_duration_bucket{le="10000"} 706630829 +event_dispatch_duration_bucket{le="20000"} 798128596 +event_dispatch_duration_bucket{le="50000"} 837211042 +event_dispatch_duration_bucket{le="100000"} 905982244 +event_dispatch_duration_bucket{le="200000"} 939489033 +event_dispatch_duration_bucket{le="300000"} 943306570 +event_dispatch_duration_bucket{le="400000"} 944121951 +event_dispatch_duration_bucket{le="500000"} 944229943 +event_dispatch_duration_bucket{le="600000"} 944266326 +event_dispatch_duration_bucket{le="700000"} 944298315 +event_dispatch_duration_bucket{le="800000"} 944327240 +event_dispatch_duration_bucket{le="900000"} 944351898 +event_dispatch_duration_bucket{le="1000000"} 944586182 +event_dispatch_duration_bucket{le="2000000"} 948855815 +event_dispatch_duration_bucket{le="5000000"} 950633564 +event_dispatch_duration_bucket{le="+Inf"} 951351890 +event_dispatch_duration_sum 33125343751105 +event_dispatch_duration_count 951351890 +# HELP finalization_time the amount of time, in milliseconds, between proposal and finalization of a block +# TYPE finalization_time gauge +finalization_time 44249 +# HELP linear_chain_sync_get_block_by_hash histogram of linear_chain_sync get_block_by_hash request +# TYPE linear_chain_sync_get_block_by_hash histogram +linear_chain_sync_get_block_by_hash_bucket{le="0.01"} 0 +linear_chain_sync_get_block_by_hash_bucket{le="0.02"} 0 +linear_chain_sync_get_block_by_hash_bucket{le="0.04"} 0 +linear_chain_sync_get_block_by_hash_bucket{le="0.08"} 0 +linear_chain_sync_get_block_by_hash_bucket{le="0.16"} 0 +linear_chain_sync_get_block_by_hash_bucket{le="0.32"} 0 +linear_chain_sync_get_block_by_hash_bucket{le="+Inf"} 0 +linear_chain_sync_get_block_by_hash_sum 0 +linear_chain_sync_get_block_by_hash_count 0 +# HELP linear_chain_sync_get_block_by_height histogram of linear_chain_sync get_block_by_height request +# TYPE linear_chain_sync_get_block_by_height histogram +linear_chain_sync_get_block_by_height_bucket{le="0.01"} 0 +linear_chain_sync_get_block_by_height_bucket{le="0.02"} 0 +linear_chain_sync_get_block_by_height_bucket{le="0.04"} 0 +linear_chain_sync_get_block_by_height_bucket{le="0.08"} 0 +linear_chain_sync_get_block_by_height_bucket{le="0.16"} 0 +linear_chain_sync_get_block_by_height_bucket{le="0.32"} 1 +linear_chain_sync_get_block_by_height_bucket{le="+Inf"} 1 +linear_chain_sync_get_block_by_height_sum 0.192700945 +linear_chain_sync_get_block_by_height_count 1 +# HELP linear_chain_sync_get_deploys histogram of linear_chain_sync get_deploys request +# TYPE linear_chain_sync_get_deploys histogram +linear_chain_sync_get_deploys_bucket{le="0.01"} 0 +linear_chain_sync_get_deploys_bucket{le="0.02"} 0 +linear_chain_sync_get_deploys_bucket{le="0.04"} 0 +linear_chain_sync_get_deploys_bucket{le="0.08"} 0 +linear_chain_sync_get_deploys_bucket{le="0.16"} 0 +linear_chain_sync_get_deploys_bucket{le="0.32"} 0 +linear_chain_sync_get_deploys_bucket{le="+Inf"} 0 +linear_chain_sync_get_deploys_sum 0 +linear_chain_sync_get_deploys_count 0 +# HELP mem_address_gossiper address_gossiper memory usage in bytes +# TYPE mem_address_gossiper gauge +mem_address_gossiper 179472 +# HELP mem_block_executor block_executor memory usage in bytes +# TYPE mem_block_executor gauge +mem_block_executor 12432 +# HELP mem_block_proposer block_proposer memory usage in bytes +# TYPE mem_block_proposer gauge +mem_block_proposer 188661 +# HELP mem_chainspec_loader chainspec_loader memory usage in bytes +# TYPE mem_chainspec_loader gauge +mem_chainspec_loader 47411 +# HELP mem_consensus consensus memory usage in bytes +# TYPE mem_consensus gauge +mem_consensus 493933796 +# HELP mem_contract_runtime contract_runtime memory usage in bytes +# TYPE mem_contract_runtime gauge +mem_contract_runtime 0 +# HELP mem_deploy_fetcher deploy_fetcher memory usage in bytes +# TYPE mem_deploy_fetcher gauge +mem_deploy_fetcher 6336 +# HELP mem_deploy_gossiper deploy_gossiper memory usage in bytes +# TYPE mem_deploy_gossiper gauge +mem_deploy_gossiper 27648 +# HELP mem_estimator_runtime_s time taken to estimate memory usage, in seconds +# TYPE mem_estimator_runtime_s histogram +mem_estimator_runtime_s_bucket{le="0.000000004"} 0 +mem_estimator_runtime_s_bucket{le="0.000000008"} 0 +mem_estimator_runtime_s_bucket{le="0.000000016"} 0 +mem_estimator_runtime_s_bucket{le="0.000000032"} 0 +mem_estimator_runtime_s_bucket{le="0.000000064"} 0 +mem_estimator_runtime_s_bucket{le="0.000000128"} 0 +mem_estimator_runtime_s_bucket{le="0.000000256"} 0 +mem_estimator_runtime_s_bucket{le="0.000000512"} 0 +mem_estimator_runtime_s_bucket{le="0.000001024"} 0 +mem_estimator_runtime_s_bucket{le="0.000002048"} 0 +mem_estimator_runtime_s_bucket{le="0.000004096"} 0 +mem_estimator_runtime_s_bucket{le="0.000008192"} 0 +mem_estimator_runtime_s_bucket{le="0.000016384"} 0 +mem_estimator_runtime_s_bucket{le="0.000032768"} 0 +mem_estimator_runtime_s_bucket{le="0.000065536"} 0 +mem_estimator_runtime_s_bucket{le="0.000131072"} 1 +mem_estimator_runtime_s_bucket{le="0.000262144"} 75 +mem_estimator_runtime_s_bucket{le="0.000524288"} 215 +mem_estimator_runtime_s_bucket{le="0.001048576"} 841 +mem_estimator_runtime_s_bucket{le="0.002097152"} 1451 +mem_estimator_runtime_s_bucket{le="0.004194304"} 2507 +mem_estimator_runtime_s_bucket{le="0.008388608"} 25606 +mem_estimator_runtime_s_bucket{le="0.016777216"} 25684 +mem_estimator_runtime_s_bucket{le="0.033554432"} 25698 +mem_estimator_runtime_s_bucket{le="0.067108864"} 26022 +mem_estimator_runtime_s_bucket{le="0.134217728"} 26214 +mem_estimator_runtime_s_bucket{le="0.268435456"} 26215 +mem_estimator_runtime_s_bucket{le="0.536870912"} 26215 +mem_estimator_runtime_s_bucket{le="1.073741824"} 26215 +mem_estimator_runtime_s_bucket{le="2.147483648"} 26215 +mem_estimator_runtime_s_bucket{le="4.294967296"} 26215 +mem_estimator_runtime_s_bucket{le="8.589934592"} 26215 +mem_estimator_runtime_s_bucket{le="+Inf"} 26215 +mem_estimator_runtime_s_sum 168.82451708300013 +mem_estimator_runtime_s_count 26215 +# HELP mem_event_stream_server mem_event_stream_server memory usage in bytes +# TYPE mem_event_stream_server gauge +mem_event_stream_server 0 +# HELP mem_linear_chain linear_chain memory usage in bytes +# TYPE mem_linear_chain gauge +mem_linear_chain 1579664 +# HELP mem_metrics metrics memory usage in bytes +# TYPE mem_metrics gauge +mem_metrics 0 +# HELP mem_net net memory usage in bytes +# TYPE mem_net gauge +mem_net 442594 +# HELP mem_proto_block_validator proto_block_validator memory usage in bytes +# TYPE mem_proto_block_validator gauge +mem_proto_block_validator 6912 +# HELP mem_rest_server mem_rest_server memory usage in bytes +# TYPE mem_rest_server gauge +mem_rest_server 0 +# HELP mem_rpc_server rpc_server memory usage in bytes +# TYPE mem_rpc_server gauge +mem_rpc_server 0 +# HELP mem_storage storage memory usage in bytes +# TYPE mem_storage gauge +mem_storage 838747 +# HELP mem_total total memory usage in bytes +# TYPE mem_total gauge +mem_total 497263673 +# HELP net_broadcast_requests number of broadcasting requests +# TYPE net_broadcast_requests counter +net_broadcast_requests 1 +# HELP net_direct_message_requests number of requests to send a message directly to a peer +# TYPE net_direct_message_requests counter +net_direct_message_requests 118850781 +# HELP net_open_connections number of established connections +# TYPE net_open_connections gauge +net_open_connections 768 +# HELP net_queued_direct_messages number of messages waiting to be sent out +# TYPE net_queued_direct_messages gauge +net_queued_direct_messages 8846 +# HELP owm_read_futures_in_flight number of do-nothing futures in flight created by `Codec::read_response` +# TYPE owm_read_futures_in_flight gauge +owm_read_futures_in_flight 0 +# HELP owm_read_futures_total number of do-nothing futures total created by `Codec::read_response` +# TYPE owm_read_futures_total gauge +owm_read_futures_total 0 +# HELP owm_write_futures_in_flight number of do-nothing futures in flight created by `Codec::write_response` +# TYPE owm_write_futures_in_flight gauge +owm_write_futures_in_flight 0 +# HELP owm_write_futures_total number of do-nothing futures total created by `Codec::write_response` +# TYPE owm_write_futures_total gauge +owm_write_futures_total 0 +# HELP peers Number of connected peers. +# TYPE peers gauge +peers 770 +# HELP pending_deploy amount of pending deploys +# TYPE pending_deploy gauge +pending_deploy 0 +# HELP runner_events total event count +# TYPE runner_events counter +runner_events 951351891 +# HELP scheduler_queue_api_count Event in the queue. +# TYPE scheduler_queue_api_count gauge +scheduler_queue_api_count 0 +# HELP scheduler_queue_control_count Event in the queue. +# TYPE scheduler_queue_control_count gauge +scheduler_queue_control_count 0 +# HELP scheduler_queue_network_count Event in the queue. +# TYPE scheduler_queue_network_count gauge +scheduler_queue_network_count 0 +# HELP scheduler_queue_network_incoming_count Event in the queue. +# TYPE scheduler_queue_network_incoming_count gauge +scheduler_queue_network_incoming_count 0 +# HELP scheduler_queue_regular_count Event in the queue. +# TYPE scheduler_queue_regular_count gauge +scheduler_queue_regular_count 0 +# HELP scheduler_queue_total_count total count of events in queues. +# TYPE scheduler_queue_total_count gauge +scheduler_queue_total_count 0 +# HELP time_of_last_finalized_block timestamp of the most recently finalized block +# TYPE time_of_last_finalized_block gauge +time_of_last_finalized_block 1619915833344 +# HELP time_of_last_proto_block timestamp of the most recently accepted proto block +# TYPE time_of_last_proto_block gauge +time_of_last_proto_block 1619912622147 +# HELP total_ram_bytes total system ram in bytes +# TYPE total_ram_bytes gauge +total_ram_bytes 4026441728