diff --git a/source/includes/_account.md b/source/includes/_account.md index e0fa3117..30d4afac 100644 --- a/source/includes/_account.md +++ b/source/includes/_account.md @@ -194,6 +194,7 @@ func main() {
+ **Coin** @@ -225,6 +226,7 @@ gas fee: 0.0000660495 INJ
+ **TxResponse** @@ -244,6 +246,7 @@ gas fee: 0.0000660495 INJ
+ **ABCIMessageLog** @@ -253,6 +256,7 @@ gas fee: 0.0000660495 INJ
+ **Event** @@ -261,6 +265,7 @@ gas fee: 0.0000660495 INJ
+ **StringEvent** @@ -269,6 +274,7 @@ gas fee: 0.0000660495 INJ
+ **EventAttribute** @@ -278,6 +284,7 @@ gas fee: 0.0000660495 INJ
+ **Attribute** @@ -475,6 +482,7 @@ func main() {
+ **Coin** @@ -506,6 +514,7 @@ gas fee: 0.000064803 INJ
+ **TxResponse** @@ -525,6 +534,7 @@ gas fee: 0.000064803 INJ
+ **ABCIMessageLog** @@ -534,6 +544,7 @@ gas fee: 0.000064803 INJ
+ **Event** @@ -542,6 +553,7 @@ gas fee: 0.000064803 INJ
+ **StringEvent** @@ -550,6 +562,7 @@ gas fee: 0.000064803 INJ
+ **EventAttribute** @@ -559,6 +572,7 @@ gas fee: 0.000064803 INJ
+ **Attribute** @@ -766,6 +780,7 @@ func main() {
+ **Coin** @@ -797,6 +812,7 @@ gas fee: 0.0000610515 INJ
+ **TxResponse** @@ -816,6 +832,7 @@ gas fee: 0.0000610515 INJ
+ **ABCIMessageLog** @@ -825,6 +842,7 @@ gas fee: 0.0000610515 INJ
+ **Event** @@ -833,6 +851,7 @@ gas fee: 0.0000610515 INJ
+ **StringEvent** @@ -841,6 +860,7 @@ gas fee: 0.0000610515 INJ
+ **EventAttribute** @@ -850,6 +870,7 @@ gas fee: 0.0000610515 INJ
+ **Attribute** @@ -1057,6 +1078,7 @@ func main() {
+ **Coin** @@ -1088,6 +1110,7 @@ gas fee: 0.0000611985 INJ
+ **TxResponse** @@ -1107,6 +1130,7 @@ gas fee: 0.0000611985 INJ
+ **ABCIMessageLog** @@ -1116,6 +1140,7 @@ gas fee: 0.0000611985 INJ
+ **Event** @@ -1124,6 +1149,7 @@ gas fee: 0.0000611985 INJ
+ **StringEvent** @@ -1132,6 +1158,7 @@ gas fee: 0.0000611985 INJ
+ **EventAttribute** @@ -1141,6 +1168,7 @@ gas fee: 0.0000611985 INJ
+ **Attribute** diff --git a/source/includes/_binaryoptions.md b/source/includes/_binaryoptions.md index 09a50208..fdf8a92a 100644 --- a/source/includes/_binaryoptions.md +++ b/source/includes/_binaryoptions.md @@ -133,6 +133,7 @@ func main() {
+ **BinaryOptionsMarket** @@ -156,6 +157,7 @@ func main() {
+ **OracleType** @@ -378,6 +380,7 @@ func main() {
+ **OracleType** @@ -407,6 +410,7 @@ func main() {
+ **TxResponse** @@ -426,6 +430,7 @@ func main() {
+ **ABCIMessageLog** @@ -435,6 +440,7 @@ func main() {
+ **Event** @@ -443,6 +449,7 @@ func main() {
+ **StringEvent** @@ -451,6 +458,7 @@ func main() {
+ **EventAttribute** @@ -460,6 +468,7 @@ func main() {
+ **Attribute** @@ -591,6 +600,7 @@ if __name__ == "__main__":
+ **DerivativeOrder** @@ -602,6 +612,7 @@ if __name__ == "__main__":
+ **OrderInfo** @@ -613,6 +624,7 @@ if __name__ == "__main__":
+ **OrderType** @@ -653,6 +665,7 @@ gas fee: 0.0000606245 INJ
+ **TxResponse** @@ -672,6 +685,7 @@ gas fee: 0.0000606245 INJ
+ **ABCIMessageLog** @@ -681,6 +695,7 @@ gas fee: 0.0000606245 INJ
+ **Event** @@ -689,6 +704,7 @@ gas fee: 0.0000606245 INJ
+ **StringEvent** @@ -697,6 +713,7 @@ gas fee: 0.0000606245 INJ
+ **EventAttribute** @@ -706,6 +723,7 @@ gas fee: 0.0000606245 INJ
+ **Attribute** @@ -832,6 +850,7 @@ if __name__ == "__main__":
+ **DerivativeOrder** @@ -843,6 +862,7 @@ if __name__ == "__main__":
+ **OrderInfo** @@ -854,6 +874,7 @@ if __name__ == "__main__":
+ **OrderType** @@ -894,6 +915,7 @@ gas fee: 0.0000539515 INJ
+ **TxResponse** @@ -913,6 +935,7 @@ gas fee: 0.0000539515 INJ
+ **ABCIMessageLog** @@ -922,6 +945,7 @@ gas fee: 0.0000539515 INJ
+ **Event** @@ -930,6 +954,7 @@ gas fee: 0.0000539515 INJ
+ **StringEvent** @@ -938,6 +963,7 @@ gas fee: 0.0000539515 INJ
+ **EventAttribute** @@ -947,6 +973,7 @@ gas fee: 0.0000539515 INJ
+ **Attribute** @@ -1066,6 +1093,7 @@ if __name__ == "__main__":
+ **OrderMask** @@ -1100,6 +1128,7 @@ gas fee: 0.0000556515 INJ
+ **TxResponse** @@ -1119,6 +1148,7 @@ gas fee: 0.0000556515 INJ
+ **ABCIMessageLog** @@ -1128,6 +1158,7 @@ gas fee: 0.0000556515 INJ
+ **Event** @@ -1136,6 +1167,7 @@ gas fee: 0.0000556515 INJ
+ **StringEvent** @@ -1144,6 +1176,7 @@ gas fee: 0.0000556515 INJ
+ **EventAttribute** @@ -1153,6 +1186,7 @@ gas fee: 0.0000556515 INJ
+ **Attribute** @@ -1281,6 +1315,7 @@ if __name__ == "__main__":
+ **MarketStatus** @@ -1312,6 +1347,7 @@ gas fee: 0.0000556515 INJ
+ **TxResponse** @@ -1331,6 +1367,7 @@ gas fee: 0.0000556515 INJ
+ **ABCIMessageLog** @@ -1340,6 +1377,7 @@ gas fee: 0.0000556515 INJ
+ **Event** @@ -1348,6 +1386,7 @@ gas fee: 0.0000556515 INJ
+ **StringEvent** @@ -1356,6 +1395,7 @@ gas fee: 0.0000556515 INJ
+ **EventAttribute** @@ -1365,6 +1405,7 @@ gas fee: 0.0000556515 INJ
+ **Attribute** @@ -1748,6 +1789,7 @@ func main() {
+ **OrderData** @@ -1759,6 +1801,7 @@ func main() {
+ **SpotOrder** @@ -1769,6 +1812,7 @@ func main() {
+ **DerivativeOrder** @@ -1780,6 +1824,7 @@ func main() {
+ **OrderMask** @@ -1794,6 +1839,7 @@ func main() {
+ **OrderInfo** @@ -1805,6 +1851,7 @@ func main() {
+ **OrderType** @@ -1858,6 +1905,7 @@ gas fee: 0.000329546 INJ
+ **TxResponse** @@ -1877,6 +1925,7 @@ gas fee: 0.000329546 INJ
+ **ABCIMessageLog** @@ -1886,6 +1935,7 @@ gas fee: 0.000329546 INJ
+ **Event** @@ -1894,6 +1944,7 @@ gas fee: 0.000329546 INJ
+ **StringEvent** @@ -1902,6 +1953,7 @@ gas fee: 0.000329546 INJ
+ **EventAttribute** @@ -1911,6 +1963,7 @@ gas fee: 0.000329546 INJ
+ **Attribute** diff --git a/source/includes/_chainexchange.md b/source/includes/_chainexchange.md index 02a2c26f..0dd1d07f 100644 --- a/source/includes/_chainexchange.md +++ b/source/includes/_chainexchange.md @@ -133,6 +133,7 @@ func main() {
+ **Subaccount** @@ -183,6 +184,7 @@ func main() {
+ **Deposit** @@ -339,6 +341,7 @@ func main() {
+ **Deposit** @@ -478,6 +481,7 @@ No parameters
+ **Balance** @@ -487,6 +491,7 @@ No parameters
+ **Deposit** @@ -671,6 +676,7 @@ func main() {
+ **MarketVolume** @@ -679,6 +685,7 @@ func main() {
+ **VolumeRecord** @@ -856,6 +863,7 @@ func main() {
+ **AggregateAccountVolumeRecord** @@ -864,6 +872,7 @@ func main() {
+ **MarketVolume** @@ -872,6 +881,7 @@ func main() {
+ **VolumeRecord** @@ -1014,6 +1024,7 @@ func main() {
+ **VolumeRecord** @@ -1161,6 +1172,7 @@ func main() {
+ **MarketVolume** @@ -1169,6 +1181,7 @@ func main() {
+ **VolumeRecord** @@ -1444,6 +1457,7 @@ func main() {
+ **DenomDecimals** @@ -1607,6 +1621,7 @@ func main() {
+ **SubaccountOrderData** @@ -1615,6 +1630,7 @@ func main() {
+ **SubaccountOrder** @@ -1940,6 +1956,7 @@ func main() {
+ **SubaccountOrderbookMetadataWithMarket** @@ -1949,6 +1966,7 @@ func main() {
+ **SubaccountOrderbookMetadata** @@ -2403,6 +2421,7 @@ No parameters
+ **TradingRewardCampaignInfo** @@ -2413,6 +2432,7 @@ No parameters
+ **CampaignRewardPool** @@ -2421,6 +2441,7 @@ No parameters
+ **TradingRewardCampaignBoostInfo** @@ -2431,6 +2452,7 @@ No parameters
+ **PointsMultiplier** @@ -2588,6 +2610,7 @@ func main() {
+ **FeeDiscountTierInfo** @@ -2598,6 +2621,7 @@ func main() {
+ **FeeDiscountTierTTL** @@ -2796,6 +2820,7 @@ No parameters
+ **FeeDiscountSchedule** @@ -2807,6 +2832,7 @@ No parameters
+ **FeeDiscountTierInfo** @@ -3061,6 +3087,7 @@ func main() {
+ **BalanceMismatch** @@ -3213,6 +3240,7 @@ No parameters
+ **BalanceWithMarginHold** @@ -3385,6 +3413,7 @@ No parameters
+ **TierStatistic** @@ -3804,6 +3833,7 @@ func main() {
+ **TradeRecords** @@ -3812,6 +3842,7 @@ func main() {
+ **TradeRecord** @@ -4232,6 +4263,7 @@ func main() {
+ **TradeHistoryOptions** @@ -4280,6 +4312,7 @@ func main() {
+ **MetadataStatistics** @@ -4295,6 +4328,7 @@ func main() {
+ **TradeRecord** @@ -4626,6 +4660,7 @@ func main() {
+ **TxResponse** @@ -4645,6 +4680,7 @@ func main() {
+ **ABCIMessageLog** @@ -4654,6 +4690,7 @@ func main() {
+ **Event** @@ -4662,6 +4699,7 @@ func main() {
+ **StringEvent** @@ -4670,6 +4708,7 @@ func main() {
+ **EventAttribute** @@ -4679,6 +4718,7 @@ func main() {
+ **Attribute** diff --git a/source/includes/_changelog.md b/source/includes/_changelog.md index 95b9934d..90ec61ff 100644 --- a/source/includes/_changelog.md +++ b/source/includes/_changelog.md @@ -1,5 +1,10 @@ # Change Log +## 9999-99-99 +- Updated the API documentation to include all queries and messages for the `tendermint` module +- Python SDK v1.5.0 + - Added support for all queries from the `tendermint` module + ## 2024-03-08 - Updated the API documentation to include all queries and messages for the `distribution` and `chain exchange` modules - Python SDK v1.4.0 diff --git a/source/includes/_derivatives.md b/source/includes/_derivatives.md index b84f22dd..e43203fe 100644 --- a/source/includes/_derivatives.md +++ b/source/includes/_derivatives.md @@ -297,6 +297,7 @@ func main() {
+ **Level** @@ -455,6 +456,7 @@ func main() {
+ **TrimmedDerivativeLimitOrder** @@ -614,6 +616,7 @@ func main() {
+ **TrimmedDerivativeLimitOrder** @@ -779,6 +782,7 @@ func main() {
+ **TrimmedDerivativeLimitOrder** @@ -941,6 +945,7 @@ func main() {
+ **TrimmedDerivativeLimitOrder** @@ -1125,6 +1130,7 @@ func main() {
+ **FullDerivativeMarket** @@ -1135,6 +1141,7 @@ func main() {
+ **DerivativeMarket** @@ -1157,6 +1164,7 @@ func main() {
+ **OracleType** @@ -1175,6 +1183,7 @@ func main() {
+ **MarketStatus** @@ -1186,6 +1195,7 @@ func main() {
+ **PerpetualMarketState** @@ -1194,6 +1204,7 @@ func main() {
+ **PerpetualMarketInfo** @@ -1205,6 +1216,7 @@ func main() {
+ **PerpetualMarketFunding** @@ -1214,6 +1226,7 @@ func main() {
+ **ExpiryFuturesMarketInfo** @@ -1390,6 +1403,7 @@ func main() {
+ **FullDerivativeMarket** @@ -1400,6 +1414,7 @@ func main() {
+ **DerivativeMarket** @@ -1422,6 +1437,7 @@ func main() {
+ **OracleType** @@ -1440,6 +1456,7 @@ func main() {
+ **MarketStatus** @@ -1451,6 +1468,7 @@ func main() {
+ **PerpetualMarketState** @@ -1459,6 +1477,7 @@ func main() {
+ **PerpetualMarketInfo** @@ -1470,6 +1489,7 @@ func main() {
+ **PerpetualMarketFunding** @@ -1479,6 +1499,7 @@ func main() {
+ **ExpiryFuturesMarketInfo** @@ -1771,6 +1792,7 @@ No parameters
+ **DerivativePosition** @@ -1780,6 +1802,7 @@ No parameters
+ **Position** @@ -1993,6 +2016,7 @@ func main() {
+ **DerivativePosition** @@ -2002,6 +2026,7 @@ func main() {
+ **Position** @@ -2168,6 +2193,7 @@ func main() {
+ **Position** @@ -2333,6 +2359,7 @@ func main() {
+ **EffectivePosition** @@ -2480,6 +2507,7 @@ func main() {
+ **PerpetualMarketInfo** @@ -2620,6 +2648,7 @@ func main() {
+ **ExpiryFuturesMarketInfo** @@ -2766,6 +2795,7 @@ func main() {
+ **PerpetualMarketFunding** @@ -2925,6 +2955,7 @@ func main() {
+ **TrimmedDerivativeConditionalOrder** @@ -3141,6 +3172,7 @@ func main() {
+ **OracleType** @@ -3170,6 +3202,7 @@ func main() {
+ **TxResponse** @@ -3189,6 +3222,7 @@ func main() {
+ **ABCIMessageLog** @@ -3198,6 +3232,7 @@ func main() {
+ **Event** @@ -3206,6 +3241,7 @@ func main() {
+ **StringEvent** @@ -3214,6 +3250,7 @@ func main() {
+ **EventAttribute** @@ -3223,6 +3260,7 @@ func main() {
+ **Attribute** @@ -3437,6 +3475,7 @@ func main() {
+ **OracleType** @@ -3466,6 +3505,7 @@ func main() {
+ **TxResponse** @@ -3485,6 +3525,7 @@ func main() {
+ **ABCIMessageLog** @@ -3494,6 +3535,7 @@ func main() {
+ **Event** @@ -3502,6 +3544,7 @@ func main() {
+ **StringEvent** @@ -3510,6 +3553,7 @@ func main() {
+ **EventAttribute** @@ -3519,6 +3563,7 @@ func main() {
+ **Attribute** @@ -3786,6 +3831,7 @@ func main() {
+ **DerivativeOrder** @@ -3797,6 +3843,7 @@ func main() {
+ **OrderInfo** @@ -3808,6 +3855,7 @@ func main() {
+ **OrderType** @@ -3853,6 +3901,7 @@ gas fee: 0.0000857195 INJ
+ **TxResponse** @@ -3872,6 +3921,7 @@ gas fee: 0.0000857195 INJ
+ **ABCIMessageLog** @@ -3881,6 +3931,7 @@ gas fee: 0.0000857195 INJ
+ **Event** @@ -3889,6 +3940,7 @@ gas fee: 0.0000857195 INJ
+ **StringEvent** @@ -3897,6 +3949,7 @@ gas fee: 0.0000857195 INJ
+ **EventAttribute** @@ -3906,6 +3959,7 @@ gas fee: 0.0000857195 INJ
+ **Attribute** @@ -4175,6 +4229,7 @@ func main() {
+ **DerivativeOrder** @@ -4186,6 +4241,7 @@ func main() {
+ **OrderInfo** @@ -4197,6 +4253,7 @@ func main() {
+ **OrderType** @@ -4242,6 +4299,7 @@ gas fee: 0.000069981 INJ
+ **TxResponse** @@ -4261,6 +4319,7 @@ gas fee: 0.000069981 INJ
+ **ABCIMessageLog** @@ -4270,6 +4329,7 @@ gas fee: 0.000069981 INJ
+ **Event** @@ -4278,6 +4338,7 @@ gas fee: 0.000069981 INJ
+ **StringEvent** @@ -4286,6 +4347,7 @@ gas fee: 0.000069981 INJ
+ **EventAttribute** @@ -4295,6 +4357,7 @@ gas fee: 0.000069981 INJ
+ **Attribute** @@ -4501,6 +4564,7 @@ func main() {
+ **OrderMask** @@ -4543,6 +4607,7 @@ gas fee: 0.0000706865 INJ
+ **TxResponse** @@ -4562,6 +4627,7 @@ gas fee: 0.0000706865 INJ
+ **ABCIMessageLog** @@ -4571,6 +4637,7 @@ gas fee: 0.0000706865 INJ
+ **Event** @@ -4579,6 +4646,7 @@ gas fee: 0.0000706865 INJ
+ **StringEvent** @@ -4587,6 +4655,7 @@ gas fee: 0.0000706865 INJ
+ **EventAttribute** @@ -4596,6 +4665,7 @@ gas fee: 0.0000706865 INJ
+ **Attribute** @@ -4979,6 +5049,7 @@ func main() {
+ **OrderData** @@ -4990,6 +5061,7 @@ func main() {
+ **SpotOrder** @@ -5000,6 +5072,7 @@ func main() {
+ **DerivativeOrder** @@ -5011,6 +5084,7 @@ func main() {
+ **OrderMask** @@ -5025,6 +5099,7 @@ func main() {
+ **OrderInfo** @@ -5036,6 +5111,7 @@ func main() {
+ **OrderType** @@ -5089,6 +5165,7 @@ gas fee: 0.000329546 INJ
+ **TxResponse** @@ -5108,6 +5185,7 @@ gas fee: 0.000329546 INJ
+ **ABCIMessageLog** @@ -5117,6 +5195,7 @@ gas fee: 0.000329546 INJ
+ **Event** @@ -5125,6 +5204,7 @@ gas fee: 0.000329546 INJ
+ **StringEvent** @@ -5133,6 +5213,7 @@ gas fee: 0.000329546 INJ
+ **EventAttribute** @@ -5142,6 +5223,7 @@ gas fee: 0.000329546 INJ
+ **Attribute** @@ -5403,6 +5485,7 @@ func main() {
+ **DerivativeOrder** @@ -5414,6 +5497,7 @@ func main() {
+ **OrderInfo** @@ -5425,6 +5509,7 @@ func main() {
+ **OrderType** @@ -5455,6 +5540,7 @@ func main() {
+ **TxResponse** @@ -5474,6 +5560,7 @@ func main() {
+ **ABCIMessageLog** @@ -5483,6 +5570,7 @@ func main() {
+ **Event** @@ -5491,6 +5579,7 @@ func main() {
+ **StringEvent** @@ -5499,6 +5588,7 @@ func main() {
+ **EventAttribute** @@ -5508,6 +5598,7 @@ func main() {
+ **Attribute** @@ -5743,6 +5834,7 @@ gas fee: 0.000066807 INJ
+ **TxResponse** @@ -5762,6 +5854,7 @@ gas fee: 0.000066807 INJ
+ **ABCIMessageLog** @@ -5771,6 +5864,7 @@ gas fee: 0.000066807 INJ
+ **Event** @@ -5779,6 +5873,7 @@ gas fee: 0.000066807 INJ
+ **StringEvent** @@ -5787,6 +5882,7 @@ gas fee: 0.000066807 INJ
+ **EventAttribute** @@ -5796,6 +5892,7 @@ gas fee: 0.000066807 INJ
+ **Attribute** diff --git a/source/includes/_spot.md b/source/includes/_spot.md index b29130b6..88a82640 100644 --- a/source/includes/_spot.md +++ b/source/includes/_spot.md @@ -149,6 +149,7 @@ func main() {
+ **SpotMarket** @@ -165,6 +166,7 @@ func main() {
+ **MarketStatus** @@ -318,6 +320,7 @@ func main() {
+ **SpotMarket** @@ -334,6 +337,7 @@ func main() {
+ **MarketStatus** @@ -502,6 +506,7 @@ func main() {
+ **FullSpotMarket** @@ -510,6 +515,7 @@ func main() {
+ **SpotMarket** @@ -526,6 +532,7 @@ func main() {
+ **MarketStatus** @@ -537,6 +544,7 @@ func main() {
+ **MidPriceAndTOB** @@ -698,6 +706,7 @@ func main() {
+ **FullSpotMarket** @@ -706,6 +715,7 @@ func main() {
+ **SpotMarket** @@ -722,6 +732,7 @@ func main() {
+ **MarketStatus** @@ -733,6 +744,7 @@ func main() {
+ **MidPriceAndTOB** @@ -876,6 +888,7 @@ func main() {
+ **OrderSide** @@ -911,6 +924,7 @@ func main() {
+ **Level** @@ -1096,6 +1110,7 @@ func main() {
+ **TrimmedSpotLimitOrder** @@ -1302,6 +1317,7 @@ func main() {
+ **TrimmedSpotLimitOrder** @@ -1472,6 +1488,7 @@ func main() {
+ **TrimmedSpotLimitOrder** @@ -1633,6 +1650,7 @@ func main() {
+ **TrimmedSpotLimitOrder** @@ -1973,6 +1991,7 @@ func main() {
+ **TxResponse** @@ -1992,6 +2011,7 @@ func main() {
+ **ABCIMessageLog** @@ -2001,6 +2021,7 @@ func main() {
+ **Event** @@ -2009,6 +2030,7 @@ func main() {
+ **StringEvent** @@ -2017,6 +2039,7 @@ func main() {
+ **EventAttribute** @@ -2026,6 +2049,7 @@ func main() {
+ **Attribute** @@ -2293,6 +2317,7 @@ func main() {
+ **SpotOrder** @@ -2303,6 +2328,7 @@ func main() {
+ **OrderInfo** @@ -2314,6 +2340,7 @@ func main() {
+ **OrderType** @@ -2359,6 +2386,7 @@ gas fee: 0.000064956 INJ
+ **TxResponse** @@ -2378,6 +2406,7 @@ gas fee: 0.000064956 INJ
+ **ABCIMessageLog** @@ -2387,6 +2416,7 @@ gas fee: 0.000064956 INJ
+ **Event** @@ -2395,6 +2425,7 @@ gas fee: 0.000064956 INJ
+ **StringEvent** @@ -2403,6 +2434,7 @@ gas fee: 0.000064956 INJ
+ **EventAttribute** @@ -2412,6 +2444,7 @@ gas fee: 0.000064956 INJ
+ **Attribute** @@ -2676,6 +2709,7 @@ func main() {
+ **SpotOrder** @@ -2686,6 +2720,7 @@ func main() {
+ **OrderInfo** @@ -2697,6 +2732,7 @@ func main() {
+ **OrderType** @@ -2742,6 +2778,7 @@ gas fee: 0.000065298 INJ
+ **TxResponse** @@ -2761,6 +2798,7 @@ gas fee: 0.000065298 INJ
+ **ABCIMessageLog** @@ -2770,6 +2808,7 @@ gas fee: 0.000065298 INJ
+ **Event** @@ -2778,6 +2817,7 @@ gas fee: 0.000065298 INJ
+ **StringEvent** @@ -2786,6 +2826,7 @@ gas fee: 0.000065298 INJ
+ **EventAttribute** @@ -2795,6 +2836,7 @@ gas fee: 0.000065298 INJ
+ **Attribute** @@ -3022,6 +3064,7 @@ gas fee: 0.0000636815 INJ
+ **TxResponse** @@ -3041,6 +3084,7 @@ gas fee: 0.0000636815 INJ
+ **ABCIMessageLog** @@ -3050,6 +3094,7 @@ gas fee: 0.0000636815 INJ
+ **Event** @@ -3058,6 +3103,7 @@ gas fee: 0.0000636815 INJ
+ **StringEvent** @@ -3066,6 +3112,7 @@ gas fee: 0.0000636815 INJ
+ **EventAttribute** @@ -3075,6 +3122,7 @@ gas fee: 0.0000636815 INJ
+ **Attribute** @@ -3458,6 +3506,7 @@ func main() {
+ **OrderData** @@ -3469,6 +3518,7 @@ func main() {
+ **SpotOrder** @@ -3479,6 +3529,7 @@ func main() {
+ **DerivativeOrder** @@ -3490,6 +3541,7 @@ func main() {
+ **OrderMask** @@ -3504,6 +3556,7 @@ func main() {
+ **OrderInfo** @@ -3515,6 +3568,7 @@ func main() {
+ **OrderType** @@ -3568,6 +3622,7 @@ gas fee: 0.000329546 INJ
+ **TxResponse** @@ -3587,6 +3642,7 @@ gas fee: 0.000329546 INJ
+ **ABCIMessageLog** @@ -3596,6 +3652,7 @@ gas fee: 0.000329546 INJ
+ **Event** @@ -3604,6 +3661,7 @@ gas fee: 0.000329546 INJ
+ **StringEvent** @@ -3612,6 +3670,7 @@ gas fee: 0.000329546 INJ
+ **EventAttribute** @@ -3621,6 +3680,7 @@ gas fee: 0.000329546 INJ
+ **Attribute** diff --git a/source/includes/_staking.md b/source/includes/_staking.md index 5190abc1..54a582da 100644 --- a/source/includes/_staking.md +++ b/source/includes/_staking.md @@ -140,6 +140,7 @@ func main() {
+ **DecCoin** @@ -280,6 +281,7 @@ func main() {
+ **ValidatorOutstandingRewards** @@ -287,6 +289,7 @@ func main() {
+ **DecCoin** @@ -427,6 +430,7 @@ func main() {
+ **ValidatorAccumulatedCommission** @@ -434,6 +438,7 @@ func main() {
+ **DecCoin** @@ -565,6 +570,7 @@ func main() {
+ **PageRequest** @@ -588,6 +594,7 @@ func main() {
+ **ValidatorSlashEvent** @@ -596,6 +603,7 @@ func main() {
+ **PageResponse** @@ -739,6 +747,7 @@ func main() {
+ **DecCoin** @@ -915,6 +924,7 @@ func main() {
+ **DelegationDelegatorReward** @@ -923,6 +933,7 @@ func main() {
+ **DecCoin** @@ -1317,6 +1328,7 @@ No parameters
+ **DecCoin** @@ -1484,6 +1496,7 @@ func main() {
+ **TxResponse** @@ -1503,6 +1516,7 @@ func main() {
+ **ABCIMessageLog** @@ -1512,6 +1526,7 @@ func main() {
+ **Event** @@ -1520,6 +1535,7 @@ func main() {
+ **StringEvent** @@ -1528,6 +1544,7 @@ func main() {
+ **EventAttribute** @@ -1537,6 +1554,7 @@ func main() {
+ **Attribute** @@ -1722,6 +1740,7 @@ gas fee: 0.000097523 INJ
+ **TxResponse** @@ -1741,6 +1760,7 @@ gas fee: 0.000097523 INJ
+ **ABCIMessageLog** @@ -1750,6 +1770,7 @@ gas fee: 0.000097523 INJ
+ **Event** @@ -1758,6 +1779,7 @@ gas fee: 0.000097523 INJ
+ **StringEvent** @@ -1766,6 +1788,7 @@ gas fee: 0.000097523 INJ
+ **EventAttribute** @@ -1775,6 +1798,7 @@ gas fee: 0.000097523 INJ
+ **Attribute** @@ -1939,6 +1963,7 @@ func main() {
+ **TxResponse** @@ -1958,6 +1983,7 @@ func main() {
+ **ABCIMessageLog** @@ -1967,6 +1993,7 @@ func main() {
+ **Event** @@ -1975,6 +2002,7 @@ func main() {
+ **StringEvent** @@ -1983,6 +2011,7 @@ func main() {
+ **EventAttribute** @@ -1992,6 +2021,7 @@ func main() {
+ **Attribute** @@ -2150,6 +2180,7 @@ func main() {
+ **Coin** @@ -2169,6 +2200,7 @@ func main() {
+ **TxResponse** @@ -2188,6 +2220,7 @@ func main() {
+ **ABCIMessageLog** @@ -2197,6 +2230,7 @@ func main() {
+ **Event** @@ -2205,6 +2239,7 @@ func main() {
+ **StringEvent** @@ -2213,6 +2248,7 @@ func main() {
+ **EventAttribute** @@ -2222,6 +2258,7 @@ func main() {
+ **Attribute** @@ -2424,6 +2461,7 @@ func main() {
+ **Coin** @@ -2455,6 +2493,7 @@ gas fee: 0.000103923 INJ
+ **TxResponse** @@ -2474,6 +2513,7 @@ gas fee: 0.000103923 INJ
+ **ABCIMessageLog** @@ -2483,6 +2523,7 @@ gas fee: 0.000103923 INJ
+ **Event** @@ -2491,6 +2532,7 @@ gas fee: 0.000103923 INJ
+ **StringEvent** @@ -2499,6 +2541,7 @@ gas fee: 0.000103923 INJ
+ **EventAttribute** @@ -2508,6 +2551,7 @@ gas fee: 0.000103923 INJ
+ **Attribute** diff --git a/source/includes/_tendermint.md b/source/includes/_tendermint.md new file mode 100644 index 00000000..c07697b7 --- /dev/null +++ b/source/includes/_tendermint.md @@ -0,0 +1,1637 @@ +# - Tendermint + +Cosmos Tendermint module + +## GetNodeInfo + +Gets the current node info + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + node_info = await client.fetch_node_info() + print(node_info) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchNodeInfo(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + +No parameters + + +### Response Parameters +> Response Example: + +``` json +{ + "defaultNodeInfo":{ + "protocolVersion":{ + "p2p":"8", + "block":"11", + "app":"0" + }, + "defaultNodeId":"53c19e8ba2deb109ba8d09dd41ae82bbddd74467", + "listenAddr":"tcp://0.0.0.0:26656", + "network":"injective-888", + "version":"0.37.1", + "channels":"QCAhIiMwOGBhAA==", + "moniker":"injective", + "other":{ + "txIndex":"on", + "rpcAddress":"tcp://0.0.0.0:26657" + } + }, + "applicationVersion":{ + "name":"injective", + "appName":"injectived", + "gitCommit":"1f0a39381", + "goVersion":"go version go1.19.13 linux/amd64", + "buildDeps":[ + { + "path":"cloud.google.com/go", + "version":"v0.110.4", + "sum":"h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk=" + }, + { + "path":"cloud.google.com/go/compute/metadata", + "version":"v0.2.3", + "sum":"h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=" + } + ], + "cosmosSdkVersion":"v0.47.5", + "version":"", + "buildTags":"" + } +} +``` + + + +
ParameterTypeDescription
default_node_infoDefaultNodeInfoNode information
application_versionVersionInfoNode version information
+ + +
+ +**DefaultNodeInfo** + + + + + + + + + +
ParameterTypeDescription
protocol_versionProtocolVersionProtocol version information
default_nod_idStringNode identifier
listen_addrStringURI of the node's listening endpoint
networkStringThe chain network name
versionStringThe version number
channelsBytesChannels information
monikerString
otherDefaultNodeInfoOtherExtra node information
+ + +
+ +**ProtocolVersion** + + + + +
ParameterTypeDescription
p2pInteger
blockInteger
appInteger
+ + +
+ +**DefaultNodeInfoOther** + + + +
ParameterTypeDescription
tx_indexStringTX indexing status (on/off)
rpc_addressStringURI for RPC connections
+ + +
+ +**VersionInfo** + + + + + + + + + +
ParameterTypeDescription
nameStringThe chain name
app_nameStringApplication name
versionStringApplication version
git_commitStringGit commit hash
build_tagsStringApplication build tags
go_versionStringGoLang version used to compile the application
build_depsModule ArrayApplication dependencies
cosmos_sdk_versionStringCosmos SDK version used by the application
+ + +
+ +**Module** + + + + +
ParameterTypeDescription
pathStringModule path
versionStringModule version
sumStringChecksum
+ + + +## GetSyncing + +Returns the node's syncing status + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + syncing = await client.fetch_syncing() + print(syncing) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchSyncing(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + +No parameters + + +### Response Parameters +> Response Example: + +``` json +{ + "syncing":false +} +``` + + +
ParameterTypeDescription
syncingBooleanSyncing status
+ + + +## GetLatestBlock + +Get the latest block + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + latest_block = await client.fetch_latest_block() + print(latest_block) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchLatestBlock(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + +No parameters + + +### Response Parameters +> Response Example: + +``` json +{ + "blockId":{ + "hash":"bCxPpTR4INvkmf3kAVYi1KhwzX0ySxQuhc8xBBFNmAo=", + "partSetHeader":{ + "total":1, + "hash":"6zGn+fBW1y4cpyos4g/tVNQdqS03D/jr/B68SYVvcbQ=" + } + }, + "block":{ + "header":{ + "version":{ + "block":"11", + "app":"0" + }, + "chainId":"injective-888", + "height":"23197636", + "time":"2024-03-14T17:39:19.050602Z", + "lastBlockId":{ + "hash":"SglGvXqUCRelE9NtLBiJ0EIBBxTXmztat4fVrYagYlM=", + "partSetHeader":{ + "total":1, + "hash":"AsAE1Sdl69RqHqaseeRn3U6N43gG9T710HUjXJi6fyw=" + } + }, + "lastCommitHash":"EBSqUY4fpGLr2FmmcYsFa01H0PDWQLVuKslws5Un9zU=", + "dataHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "validatorsHash":"G0AQ0vfNXTLF7UcNXSvk6ZJRWFo09hadwJSm7haFV6I=", + "nextValidatorsHash":"G0AQ0vfNXTLF7UcNXSvk6ZJRWFo09hadwJSm7haFV6I=", + "consensusHash":"5bupI5wNP5Z/jvh5UG/269+5QPiQTXKRNRpGHwCqrU0=", + "appHash":"UoJN/dwHiiDytgSt3xHcb9zkcP8eFZ+qFZWWclQ6SYg=", + "lastResultsHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "evidenceHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "proposerAddress":"M5HjW2EATgO+uI+h2rRES5E7174=" + }, + "data":{ + "txs":[ + + ] + }, + "evidence":{ + "evidence":[ + + ] + }, + "lastCommit":{ + "height":"23197635", + "blockId":{ + "hash":"SglGvXqUCRelE9NtLBiJ0EIBBxTXmztat4fVrYagYlM=", + "partSetHeader":{ + "total":1, + "hash":"AsAE1Sdl69RqHqaseeRn3U6N43gG9T710HUjXJi6fyw=" + } + }, + "signatures":[ + { + "blockIdFlag":"BLOCK_ID_FLAG_ABSENT", + "timestamp":"0001-01-01T00:00:00Z", + "validatorAddress":"", + "signature":"" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"ObUXYdS8jfTSNPonUBFPJkft7eA=", + "timestamp":"2024-03-14T17:39:19.050602Z", + "signature":"3ZdA7LqXq4Hj5olf1XKusJ6NHCBkqjpty9pgmsxKyzSG0VL8Uf+Ro0NDuZo8jK4qfLsuctCte3rdGV6lG/cKAA==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"M5HjW2EATgO+uI+h2rRES5E7174=", + "timestamp":"2024-03-14T17:39:19.044716221Z", + "signature":"u8QVTQO/QZhNSzAwVCR3bGLUzryi9E+3jQ2COcHi46GfU0SpWOPNBvdbOHsEkRx6EKh0P0acB/hOnDE5JPp5AA==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"y8ctJ4QpJ0S7ZTVY7RTE4z1hS2c=", + "timestamp":"2024-03-14T17:39:19.051153172Z", + "signature":"0R/H5GkdKJszELjxfwX9qQlr5nuANTQYN9aTTDvKkUqJDoXW3OwbQPHtegKJlVKU8BT80D2Glng+SnQMO3JSCA==" + } + ], + "round":0 + } + }, + "sdkBlock":{ + "header":{ + "version":{ + "block":"11", + "app":"0" + }, + "chainId":"injective-888", + "height":"23197636", + "time":"2024-03-14T17:39:19.050602Z", + "lastBlockId":{ + "hash":"SglGvXqUCRelE9NtLBiJ0EIBBxTXmztat4fVrYagYlM=", + "partSetHeader":{ + "total":1, + "hash":"AsAE1Sdl69RqHqaseeRn3U6N43gG9T710HUjXJi6fyw=" + } + }, + "lastCommitHash":"EBSqUY4fpGLr2FmmcYsFa01H0PDWQLVuKslws5Un9zU=", + "dataHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "validatorsHash":"G0AQ0vfNXTLF7UcNXSvk6ZJRWFo09hadwJSm7haFV6I=", + "nextValidatorsHash":"G0AQ0vfNXTLF7UcNXSvk6ZJRWFo09hadwJSm7haFV6I=", + "consensusHash":"5bupI5wNP5Z/jvh5UG/269+5QPiQTXKRNRpGHwCqrU0=", + "appHash":"UoJN/dwHiiDytgSt3xHcb9zkcP8eFZ+qFZWWclQ6SYg=", + "lastResultsHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "evidenceHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "proposerAddress":"injvalcons1xwg7xkmpqp8q804c37sa4dzyfwgnh4a74ll9pz" + }, + "data":{ + "txs":[ + + ] + }, + "evidence":{ + "evidence":[ + + ] + }, + "lastCommit":{ + "height":"23197635", + "blockId":{ + "hash":"SglGvXqUCRelE9NtLBiJ0EIBBxTXmztat4fVrYagYlM=", + "partSetHeader":{ + "total":1, + "hash":"AsAE1Sdl69RqHqaseeRn3U6N43gG9T710HUjXJi6fyw=" + } + }, + "signatures":[ + { + "blockIdFlag":"BLOCK_ID_FLAG_ABSENT", + "timestamp":"0001-01-01T00:00:00Z", + "validatorAddress":"", + "signature":"" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"ObUXYdS8jfTSNPonUBFPJkft7eA=", + "timestamp":"2024-03-14T17:39:19.050602Z", + "signature":"3ZdA7LqXq4Hj5olf1XKusJ6NHCBkqjpty9pgmsxKyzSG0VL8Uf+Ro0NDuZo8jK4qfLsuctCte3rdGV6lG/cKAA==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"M5HjW2EATgO+uI+h2rRES5E7174=", + "timestamp":"2024-03-14T17:39:19.044716221Z", + "signature":"u8QVTQO/QZhNSzAwVCR3bGLUzryi9E+3jQ2COcHi46GfU0SpWOPNBvdbOHsEkRx6EKh0P0acB/hOnDE5JPp5AA==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"y8ctJ4QpJ0S7ZTVY7RTE4z1hS2c=", + "timestamp":"2024-03-14T17:39:19.051153172Z", + "signature":"0R/H5GkdKJszELjxfwX9qQlr5nuANTQYN9aTTDvKkUqJDoXW3OwbQPHtegKJlVKU8BT80D2Glng+SnQMO3JSCA==" + } + ], + "round":0 + } + } +} +``` + + + +
ParameterTypeDescription
block_idBlockIDBlock identifier
sdk_blockBlockBlock details
+ + +
+ +**BlockID** + + + +
ParameterTypeDescription
hashBytesBlock hash
part_set_headerPartSetHeader
+ + +
+ +**PartSetHeader** + + + +
ParameterTypeDescription
totalInteger
hashBytes
+ + +
+ +**Block** + + + + + +
ParameterTypeDescription
headerHeaderHeader information
dataDataBlock data
evidenceEvidenceList
last_commitCommit
+ + +
+ +**Header** + + + + + + + + + + + + + + + +
ParameterTypeDescription
versionConsensus
chain_idStringChain identifier
heightIntegerBlock height
timeTimeBlock time
last_block_idBlockIDPrevious block identifier
last_commit_hashBytesLast commit hash
data_hashBytesBlock data hash
validators_hashBytesValidators information hash
next_validators_hashBytesValidators information hash
consensus_hashBytesConsensus information hash
app_hashBytesApplication hash
last_result_hashBytesLast result hash
evidence_hashBytesEvidence data hash
proposer_addressStringBlock proposer's address
+ + +
+ +**Consensus** + + + + + + + + + + + + + + + +
ParameterTypeDescription
versionConsensus
chain_idStringChain identifier
heightIntegerBlock height
timeTimeBlock time
last_block_idBlockIDPrevious block identifier
last_commit_hashBytesLast commit hash
data_hashBytesBlock data hash
validators_hashBytesValidators information hash
next_validators_hashBytesValidators information hash
consensus_hashBytesConsensus information hash
app_hashBytesApplication hash
last_result_hashBytesLast result hash
evidence_hashBytesEvidence data hash
proposer_addressStringBlock proposer's address
+ + +
+ +**Data** + + +
ParameterTypeDescription
txsBytes ArrayTxs that will be applied by state @ block.Height+1. NOTE: not all txs here are valid. We're just agreeing on the order first. This means that block.AppHash does not include these txs.
+ + +
+ +**EvidenceList** + + +
ParameterTypeDescription
evidenceEvidence ArrayBlock evidence
+ + +
+ +**Evidence** + + +
ParameterTypeDescription
sumisEvidence_SumValid types for 'sum' are Evidence_DuplicateVoteEvidence and Evidence_LightClientAttackEvidence
+ + +
+ +**Commit** + + + + + +
ParameterTypeDescription
heightIntegerBlock height
roundIntegerConsensus round
block_idBlockIDBlock identifier
signaturesCommitSig ArraySigantures
+ + +
+ +**CommitSig** + + + + + +
ParameterTypeDescription
block_id_flagBlockIDFlagBlock height
validator_addressBytesValidator address
timestampTimeBlock time
signatureBytesBlock signature
+ + +
+ +**BlockIDFlag** + + + + + +
CodeName
0BLOCK_ID_FLAG_UNKNOWN
1BLOCK_ID_FLAG_ABSENT
2BLOCK_ID_FLAG_COMMIT
3BLOCK_ID_FLAG_NIL
+ + + +## GetBlockByHeight + +Get the block for a given height + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + block = await client.fetch_block_by_height(height=15793860) + print(block) + + +if __name__ == "__main__": + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + height := int64(23040174) + res, err := chainClient.FetchBlockByHeight(ctx, height) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + + + +
ParameterTypeDescription
block_idBlockIDBlock identifier
sdk_blockBlockBlock details
+ + + +### Response Parameters +> Response Example: + +``` json +{ + "blockId":{ + "hash":"MNF+X0DQFIsnEJAzyTxHMD8vZChOpW4rQeSnRKBiJ1Y=", + "partSetHeader":{ + "total":1, + "hash":"Fqg81sOmF9dqH8lORXGat/mOFyqh52/lSHvsehg9OWk=" + } + }, + "block":{ + "header":{ + "version":{ + "block":"11", + "app":"0" + }, + "chainId":"injective-888", + "height":"15793860", + "time":"2023-09-07T03:59:36.393462082Z", + "lastBlockId":{ + "hash":"RRhRSiIf1E08mJAtACM4J1RFSVJ96eR0PBVuoD7rb2c=", + "partSetHeader":{ + "total":1, + "hash":"SeO5JkVtLUrhegd0rwDatDbvS5PQf/0Yvn+BmL1MOko=" + } + }, + "lastCommitHash":"rNxjhSihfCPkPMak9qPlmUYeXRc0weFu1nmmKMUPLAQ=", + "dataHash":"1RjS2VAhrWt2lLnVLozfeI7oAi7PoDILROzeheXN5H0=", + "validatorsHash":"6lDaVNHY4DtceWtHsVS7SdR8XuPSATqQ7qNKWIxcnhg=", + "nextValidatorsHash":"6lDaVNHY4DtceWtHsVS7SdR8XuPSATqQ7qNKWIxcnhg=", + "consensusHash":"ItjUyLlUnqkCxmoaGPck+PeXC45MXx6zsLXxtOHeBTE=", + "appHash":"Sv2MdUKQxwE/glEI8c8RFQKmc4HSyKO7j3sAqySultQ=", + "lastResultsHash":"Le4RmI//Wh43Mq6ro+VMWn7ZbVZRw3HXUAQILODtag8=", + "evidenceHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "proposerAddress":"ObUXYdS8jfTSNPonUBFPJkft7eA=" + }, + "data":{ + "txs":[ + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXdsZjU3N21sd3R5bTU3c2N6bWx6a2w3a2N0MDJxc2xkc3hnanY3EippbmoxcjI0OHlzcjJ5NDBxbTJrODMwdmFucXhubTZ2Y21saHFydW1zMmUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXdsZjU3N21sd3R5bTU3c2N6bWx6a2w3a2N0MDJxc2xkc3hnanY3EippbmoxcjI0OHlzcjJ5NDBxbTJrODMwdmFucXhubTZ2Y21saHFydW1zMmUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJz+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAjr+rkaXrlMyQvUjnSB+viWNMY4CU7VHptUN/MxDVEOVEgQKAggBGLymARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCHh6hdDRsHw1dfkRZkwLOmP7uNT6RSwNJPIBf8dg1bsnLtzAhpBlAd1nF1V7oWvAvoZ/gVoiNVdzjCWYYcUB/s", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1Gj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAyaHY3Zno2djdlOTlzd2tqZmE2OWVyaGNoY2R4aDJreXhxanprEippbmoxY3p0bDhoNThsOHpjdjIzbG0wenI4aDhyeXN1NWh4Y2ZnZDUweXUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAyaHY3Zno2djdlOTlzd2tqZmE2OWVyaGNoY2R4aDJreXhxanprEippbmoxY3p0bDhoNThsOHpjdjIzbG0wenI4aDhyeXN1NWh4Y2ZnZDUweXUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJz+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA3SZsAXlR9pzcFHog/kjOFSR1EiYHVqNOnWpNWiq7NcuEgQKAggBGNmNARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkA0yE1i3DE6GGITZpVWhESrrYNgKdPRPYKCAnz9QcAdEkwOLHJ9HgOz2Ok9NhjFN5akpyxZTKRGTFX11//hT3Wd", + "CugFCrgECjgvaW5qZWN0aXZlLmV4Y2hhbmdlLnYxYmV0YTEuTXNnUHJpdmlsZWdlZEV4ZWN1dGVDb250cmFjdBL7AwoqaW5qMWV6dGttMzZ5NmMzZTZ6bXI0aGc0Zzc3YTZ3eWoweGMwZDVneDV2EngxMDIwMDAwMDAwIGZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3VzZGMsIDExMDAgcGVnZ3kweDg3YUIzQjRDODY2MWUwN0Q2MzcyMzYxMjExQjk2ZWQ0RGMzNkIxQjUaKmluajE3cTdkczB5aDdoaHR1c2ZmN2d6OGE1a3gydXd4cnV0dGx4dXI5NiKmAnsiYXJncyI6eyJtc2ciOnsic3Vic2NyaWJlIjp7fX0sInRyYWRlcl9zdWJhY2NvdW50X2lkIjoiMHhjODk3NmRjNzQ0ZDYyMzlkMGI2M2FkZDE1NDdiZGRkMzg5Mjc5YjBmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwidmF1bHRfc3ViYWNjb3VudF9pZCI6IjB4ZjAzY2Q4M2M5N2Y1ZWViZTQxMjlmMjA0N2VkMmM2NTcxYzYxZjE2YjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMyJ9LCJuYW1lIjoiVmF1bHRTdWJzY3JpYmUiLCJvcmlnaW4iOiJpbmoxZXp0a20zNnk2YzNlNnptcjRoZzRnNzdhNnd5ajB4YzBkNWd4NXYifRjp/cMH+j+kAQovL2luamVjdGl2ZS50eXBlcy52MWJldGExLkV4dGVuc2lvbk9wdGlvbnNXZWIzVHgScQgFEippbmoxN2drdWV0OGY2cHNzeGQ4bnljbTNxcjlkOXk2OTlydXB2NjM5N3oaQS7bNDH7L/B112pVzWT5OTygLht+2aFCIbvRfdlbaJqFAEXaPzWWgHCwBc4C3bCN22c8OHvjiS4ExPfg9EKkTKgAEn4KXgpUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAp46ZxDpNDxsP5gvCZkCc84ZllP7P7q0tL57X7fN0WOcEgQKAgh/GGYSHAoWCgNpbmoSDzM2Mjg2MjUwMDAwMDAwMBDdpSwaQXHoIQ/X5yai6B0reASgAArSShjzpxprthDLEyr+zX7GR07Hr+r8UmZftLbafrcZfRX2UwFw8Q8pHaMINsSjckgb", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTl1cThnZG1reHFmcmdodGVrNDl3YThrMmY4aGhtM3hlNnY5dnh4EippbmoxdzlydjV1MzU1a2UwN2NqZjR3ZzB3YTJjdmF0bWR5Y2RoNm53ZzMaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTl1cThnZG1reHFmcmdodGVrNDl3YThrMmY4aGhtM3hlNnY5dnh4EippbmoxdzlydjV1MzU1a2UwN2NqZjR3ZzB3YTJjdmF0bWR5Y2RoNm53ZzMaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA9YRhWDK9v8bR+HRAI7OzzTaeuCFfDffiIO9zTWhbk4cEgQKAggBGMmeARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBAcshkCtJATtQYYHVorDRUSOGQ7gR1bLp17ZXO5S5aTmB+pRc+/uz8cY3zfP28wpZE4BFa40sSn+vsN7YDc0Ne", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhxcnNtZmx2NzZ0MHcwZnFybXp3enh0eHF1ZTM0bXYzNG1zeHZtEippbmoxdWwyMzVzZnBmbnltY2c4Z2h1dDk4dXdzbnU2OWxuem5hM3pkamQaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhxcnNtZmx2NzZ0MHcwZnFybXp3enh0eHF1ZTM0bXYzNG1zeHZtEippbmoxdWwyMzVzZnBmbnltY2c4Z2h1dDk4dXdzbnU2OWxuem5hM3pkamQaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAimG00m9nDJwqtOiErp8o619mH/3VcEADzWzSqGpnGdIEgQKAggBGLuRARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCnWeua6pt6p7Te8JuofcIaJWaZEhgiOuFqskm9sjQ9yi5qJkOEQXCmCRFCS5uYBpk0/1tuwYXJwtro9GdxHJMI", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2Gj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWcwbThxM2tkdzMzM3N4cTI5dzduYzM2bWZmY3ZoODBndmNkMzlkEippbmoxbjl3Zmg3YTZjZzJ1Z2d5Z2FkOWFkbGo4M2E0eXdkenV2aHJtcHYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWcwbThxM2tkdzMzM3N4cTI5dzduYzM2bWZmY3ZoODBndmNkMzlkEippbmoxbjl3Zmg3YTZjZzJ1Z2d5Z2FkOWFkbGo4M2E0eXdkenV2aHJtcHYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAhKZIyozzEpDEuAl3ypUW3R3JoD7AtBIAujqq4wwPfVdEgQKAggBGOufARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkDMNT7feu38IDUKGBHpWaoydtomgYQZjGPXjj7pb8fEj0MshAm2XfDad53SLdLeKmsXMjQ5cXyYyH15EwUxDYSU", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMW54emhlOTRnc2M5anN5dWMzd3FrdW5qeXZzOHA0ZW1lMGd1NGtlEippbmoxbHFrZ3JkbGh5cWt5M3dnNnJtbnhkajVrd3Rlcjc0ZTJ1ajBtZmYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMW54emhlOTRnc2M5anN5dWMzd3FrdW5qeXZzOHA0ZW1lMGd1NGtlEippbmoxbHFrZ3JkbGh5cWt5M3dnNnJtbnhkajVrd3Rlcjc0ZTJ1ajBtZmYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAxg89Ih7H74zbkYrMXXb55tjKWTQJQ3D2Sk00p5Y0/ZEEgQKAggBGIqVARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCo/7pJIihg01V2zd+y3WH++KyVIB4m7WC9DAHPRzJIAghGLVJkAJjzGWTHrIGlh7CIira+E0UeSdy1Ag4GMBfS", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTljaGVjeHd6dWZmMDlmbTY2YzUwM3gycm1majBreXp6ZmgzZnRmEippbmoxa3R2MjJhenZ0NWg4bnF6NDh3bmhxc2o5NnVsZTR4eDBkYXc3amoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTljaGVjeHd6dWZmMDlmbTY2YzUwM3gycm1majBreXp6ZmgzZnRmEippbmoxa3R2MjJhenZ0NWg4bnF6NDh3bmhxc2o5NnVsZTR4eDBkYXc3amoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAgVaAkMOV5+9OJP2xYw3tKy3aU3SiAIummY3gRAIGDj/EgQKAggBGOihARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBSSP+Fx12//aSYEjjLjr5gl5X4jOUktkOREMTfArsWVxl4Xl7cyV3f7kYAF7kBbQQqrgMerHsc9KePhRVoXB0k", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAzMGtrbDZ1eHlhaG04aGYwZWQ4ZjQwMmY2N2Eyajl4cmM0MnlmEippbmoxejVnNHBhcDdhOGhoeGFheTJwbmZ3ZzNhd241ZHFwNXI0c3Y4a2EaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAzMGtrbDZ1eHlhaG04aGYwZWQ4ZjQwMmY2N2Eyajl4cmM0MnlmEippbmoxejVnNHBhcDdhOGhoeGFheTJwbmZ3ZzNhd241ZHFwNXI0c3Y4a2EaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAl0obf7huaZwDxwoKhqdWfwakrBU8rFlrc/Ihiquc4P5EgQKAggBGIOAARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCGyhKBN8mu+4qID3ZzBPskvusEorT6TXytayPg3k6UpGMaLx38dXS9wmX2yrLrn4G67rihS/fKVCG2yMhdwk4y", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTR0NWY5NG01Zmc0djZkcnM0cXFrZDNkNzMzeTZzczBsanl5cWxtEippbmoxaG05dWhtaGtkdHJ5d3owbXFrOHZhNDAyZTN1ZDB5cGpscWZyM2oaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTR0NWY5NG01Zmc0djZkcnM0cXFrZDNkNzMzeTZzczBsanl5cWxtEippbmoxaG05dWhtaGtkdHJ5d3owbXFrOHZhNDAyZTN1ZDB5cGpscWZyM2oaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA4fTy5A+DmuZfsXgjM48ntVqTXlOBW287TjXr91D0VGREgQKAggBGLuVARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBdYIUr7S8ky4p9g+WWi2Ef8Cnq9W5eRsQ6Q6YNcnr0rhzy6lgo31o9tJg6XB0ZHtaJb00qBdU8/igNmfhEZXqk", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWE0dzk5ejRxZ3FjZDZsNnU0ZGpmeWxjdWN0NTNkdXFrdXFucjVkEippbmoxNTI2azM2Y2szbGh2bXJnOHN5eWE4N3R5Njl1cGw4eXp6cms1ZnEaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWE0dzk5ejRxZ3FjZDZsNnU0ZGpmeWxjdWN0NTNkdXFrdXFucjVkEippbmoxNTI2azM2Y2szbGh2bXJnOHN5eWE4N3R5Njl1cGw4eXp6cms1ZnEaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohArGVpE2Qtw7Pq625UTe8FZfqFAGc7IaBTZYPusGkLfnlEgQKAggBGMmAARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkDk8e2Du8ReB4Jz73ZkpdaWHIBSo5x0XtILIMecnJzbQ3TykogSC6OQ+tWOCFQp9mUhff++iCbVpFwAx08k+zYS", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3Gj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWdkdnRka2x2M3FnNDMzdnVuOWphcGFkYW5yOTYweDB1MjRxa3FsEippbmoxYWVhNG04ZmFydzlkcjljbTg3YWc3ZDB6Nm1jZnAybnhudjI4YTcaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWdkdnRka2x2M3FnNDMzdnVuOWphcGFkYW5yOTYweDB1MjRxa3FsEippbmoxYWVhNG04ZmFydzlkcjljbTg3YWc3ZDB6Nm1jZnAybnhudjI4YTcaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAz+Zjrtxo20HOm1w4l5I57H9MAmt+87msPR5/1R/D1McEgQKAggBGMSqARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkDhGCp0+Crr0dfoCZrTb5otuTMtIxxTj9tWfxrfN7cnBTEgKFXVDlsXbay4Wlxz4QBVX4Fb6gtUgQbtDrazOEj9", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhubWRsZWF0dHU3dGV0dTZla3d3OXJtMGNtMDNlemc1amx0cnF6EippbmoxbTYzdTV5a3NhZ3Nzajd3Y3hmbDVzN3Q0dTg3azcwamZ5bm5rMmoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhubWRsZWF0dHU3dGV0dTZla3d3OXJtMGNtMDNlemc1amx0cnF6EippbmoxbTYzdTV5a3NhZ3Nzajd3Y3hmbDVzN3Q0dTg3azcwamZ5bm5rMmoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA+OlGuxc2hUmrU+iVLb2MDnHy6W4exQyJrbMie9/Sv27EgQKAggBGJqQARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBTfe9A/RDSoHQCDunT60QgdtBrz3eIGvIgLEISRMAh/2w3+A9UB5SoDNGZNUfpNsxZyyq2Emi6pXuVpFzUCjI5" + ] + }, + "evidence":{ + "evidence":[ + + ] + }, + "lastCommit":{ + "height":"15793859", + "blockId":{ + "hash":"RRhRSiIf1E08mJAtACM4J1RFSVJ96eR0PBVuoD7rb2c=", + "partSetHeader":{ + "total":1, + "hash":"SeO5JkVtLUrhegd0rwDatDbvS5PQf/0Yvn+BmL1MOko=" + } + }, + "signatures":[ + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"y8ctJ4QpJ0S7ZTVY7RTE4z1hS2c=", + "timestamp":"2023-09-07T03:59:36.496584825Z", + "signature":"AxnPc5AEa6jizZuKhXUAkNi4vic6miF9emyAx+uSMco7oKVwoXGDJ6L0wneNGYOqpKkMVMQm4hcnWgDBjiBLAA==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"M5HjW2EATgO+uI+h2rRES5E7174=", + "timestamp":"2023-09-07T03:59:36.293269404Z", + "signature":"mjODCd7P7xHo6Gn+6Qi6/u+FI72noRs9/vcbvpiqz7Hr5hRNhk2a2Jj2tw59GC6cURd2Q6c/CdZhXHgVqzMdAg==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"Nv8cuLE25L4mgnBx8shCmG68xfc=", + "timestamp":"2023-09-07T03:59:36.393462082Z", + "signature":"NyTk5W6WLxEbouVJ7LxSwV88FnH/CtmXkr6JczPqEehdrymqrGqT02OJLutGVsBmrPEkMhwa2BegkqvmPLJrBQ==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"ObUXYdS8jfTSNPonUBFPJkft7eA=", + "timestamp":"2023-09-07T03:59:36.296674286Z", + "signature":"OAwmf7pEjsXbwIWMD5HbzWiae6OAn0ME49FbXaRLvKIYKWSDKv9f0gprsgRJznOdj60SontlntwmvV+23MV6DQ==" + } + ], + "round":0 + } + }, + "sdkBlock":{ + "header":{ + "version":{ + "block":"11", + "app":"0" + }, + "chainId":"injective-888", + "height":"15793860", + "time":"2023-09-07T03:59:36.393462082Z", + "lastBlockId":{ + "hash":"RRhRSiIf1E08mJAtACM4J1RFSVJ96eR0PBVuoD7rb2c=", + "partSetHeader":{ + "total":1, + "hash":"SeO5JkVtLUrhegd0rwDatDbvS5PQf/0Yvn+BmL1MOko=" + } + }, + "lastCommitHash":"rNxjhSihfCPkPMak9qPlmUYeXRc0weFu1nmmKMUPLAQ=", + "dataHash":"1RjS2VAhrWt2lLnVLozfeI7oAi7PoDILROzeheXN5H0=", + "validatorsHash":"6lDaVNHY4DtceWtHsVS7SdR8XuPSATqQ7qNKWIxcnhg=", + "nextValidatorsHash":"6lDaVNHY4DtceWtHsVS7SdR8XuPSATqQ7qNKWIxcnhg=", + "consensusHash":"ItjUyLlUnqkCxmoaGPck+PeXC45MXx6zsLXxtOHeBTE=", + "appHash":"Sv2MdUKQxwE/glEI8c8RFQKmc4HSyKO7j3sAqySultQ=", + "lastResultsHash":"Le4RmI//Wh43Mq6ro+VMWn7ZbVZRw3HXUAQILODtag8=", + "evidenceHash":"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", + "proposerAddress":"injvalcons18x63wcw5hjxlf535lgn4qy20yer7mm0qedu0la" + }, + "data":{ + "txs":[ + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXdsZjU3N21sd3R5bTU3c2N6bWx6a2w3a2N0MDJxc2xkc3hnanY3EippbmoxcjI0OHlzcjJ5NDBxbTJrODMwdmFucXhubTZ2Y21saHFydW1zMmUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXdsZjU3N21sd3R5bTU3c2N6bWx6a2w3a2N0MDJxc2xkc3hnanY3EippbmoxcjI0OHlzcjJ5NDBxbTJrODMwdmFucXhubTZ2Y21saHFydW1zMmUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajF3bGY1NzdtbHd0eW01N3Njem1semtsN2tjdDAycXNsZHN4Z2p2NxIqaW5qMXIyNDh5c3IyeTQwcW0yazgzMHZhbnF4bm02dmNtbGhxcnVtczJlGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJz+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAjr+rkaXrlMyQvUjnSB+viWNMY4CU7VHptUN/MxDVEOVEgQKAggBGLymARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCHh6hdDRsHw1dfkRZkwLOmP7uNT6RSwNJPIBf8dg1bsnLtzAhpBlAd1nF1V7oWvAvoZ/gVoiNVdzjCWYYcUB/s", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1Gj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAyaHY3Zno2djdlOTlzd2tqZmE2OWVyaGNoY2R4aDJreXhxanprEippbmoxY3p0bDhoNThsOHpjdjIzbG0wenI4aDhyeXN1NWh4Y2ZnZDUweXUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAyaHY3Zno2djdlOTlzd2tqZmE2OWVyaGNoY2R4aDJreXhxanprEippbmoxY3p0bDhoNThsOHpjdjIzbG0wenI4aDhyeXN1NWh4Y2ZnZDUweXUaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFwMmh2N2Z6NnY3ZTk5c3dramZhNjllcmhjaGNkeGgya3l4cWp6axIqaW5qMWN6dGw4aDU4bDh6Y3YyM2xtMHpyOGg4cnlzdTVoeGNmZ2Q1MHl1GkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJz+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA3SZsAXlR9pzcFHog/kjOFSR1EiYHVqNOnWpNWiq7NcuEgQKAggBGNmNARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkA0yE1i3DE6GGITZpVWhESrrYNgKdPRPYKCAnz9QcAdEkwOLHJ9HgOz2Ok9NhjFN5akpyxZTKRGTFX11//hT3Wd", + "CugFCrgECjgvaW5qZWN0aXZlLmV4Y2hhbmdlLnYxYmV0YTEuTXNnUHJpdmlsZWdlZEV4ZWN1dGVDb250cmFjdBL7AwoqaW5qMWV6dGttMzZ5NmMzZTZ6bXI0aGc0Zzc3YTZ3eWoweGMwZDVneDV2EngxMDIwMDAwMDAwIGZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3VzZGMsIDExMDAgcGVnZ3kweDg3YUIzQjRDODY2MWUwN0Q2MzcyMzYxMjExQjk2ZWQ0RGMzNkIxQjUaKmluajE3cTdkczB5aDdoaHR1c2ZmN2d6OGE1a3gydXd4cnV0dGx4dXI5NiKmAnsiYXJncyI6eyJtc2ciOnsic3Vic2NyaWJlIjp7fX0sInRyYWRlcl9zdWJhY2NvdW50X2lkIjoiMHhjODk3NmRjNzQ0ZDYyMzlkMGI2M2FkZDE1NDdiZGRkMzg5Mjc5YjBmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwidmF1bHRfc3ViYWNjb3VudF9pZCI6IjB4ZjAzY2Q4M2M5N2Y1ZWViZTQxMjlmMjA0N2VkMmM2NTcxYzYxZjE2YjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMyJ9LCJuYW1lIjoiVmF1bHRTdWJzY3JpYmUiLCJvcmlnaW4iOiJpbmoxZXp0a20zNnk2YzNlNnptcjRoZzRnNzdhNnd5ajB4YzBkNWd4NXYifRjp/cMH+j+kAQovL2luamVjdGl2ZS50eXBlcy52MWJldGExLkV4dGVuc2lvbk9wdGlvbnNXZWIzVHgScQgFEippbmoxN2drdWV0OGY2cHNzeGQ4bnljbTNxcjlkOXk2OTlydXB2NjM5N3oaQS7bNDH7L/B112pVzWT5OTygLht+2aFCIbvRfdlbaJqFAEXaPzWWgHCwBc4C3bCN22c8OHvjiS4ExPfg9EKkTKgAEn4KXgpUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAp46ZxDpNDxsP5gvCZkCc84ZllP7P7q0tL57X7fN0WOcEgQKAgh/GGYSHAoWCgNpbmoSDzM2Mjg2MjUwMDAwMDAwMBDdpSwaQXHoIQ/X5yai6B0reASgAArSShjzpxprthDLEyr+zX7GR07Hr+r8UmZftLbafrcZfRX2UwFw8Q8pHaMINsSjckgb", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTl1cThnZG1reHFmcmdodGVrNDl3YThrMmY4aGhtM3hlNnY5dnh4EippbmoxdzlydjV1MzU1a2UwN2NqZjR3ZzB3YTJjdmF0bWR5Y2RoNm53ZzMaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTl1cThnZG1reHFmcmdodGVrNDl3YThrMmY4aGhtM3hlNnY5dnh4EippbmoxdzlydjV1MzU1a2UwN2NqZjR3ZzB3YTJjdmF0bWR5Y2RoNm53ZzMaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajE5dXE4Z2Rta3hxZnJnaHRlazQ5d2E4azJmOGhobTN4ZTZ2OXZ4eBIqaW5qMXc5cnY1dTM1NWtlMDdjamY0d2cwd2EyY3ZhdG1keWNkaDZud2czGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA9YRhWDK9v8bR+HRAI7OzzTaeuCFfDffiIO9zTWhbk4cEgQKAggBGMmeARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBAcshkCtJATtQYYHVorDRUSOGQ7gR1bLp17ZXO5S5aTmB+pRc+/uz8cY3zfP28wpZE4BFa40sSn+vsN7YDc0Ne", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhxcnNtZmx2NzZ0MHcwZnFybXp3enh0eHF1ZTM0bXYzNG1zeHZtEippbmoxdWwyMzVzZnBmbnltY2c4Z2h1dDk4dXdzbnU2OWxuem5hM3pkamQaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhxcnNtZmx2NzZ0MHcwZnFybXp3enh0eHF1ZTM0bXYzNG1zeHZtEippbmoxdWwyMzVzZnBmbnltY2c4Z2h1dDk4dXdzbnU2OWxuem5hM3pkamQaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFocXJzbWZsdjc2dDB3MGZxcm16d3p4dHhxdWUzNG12MzRtc3h2bRIqaW5qMXVsMjM1c2ZwZm55bWNnOGdodXQ5OHV3c251NjlsbnpuYTN6ZGpkGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAimG00m9nDJwqtOiErp8o619mH/3VcEADzWzSqGpnGdIEgQKAggBGLuRARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCnWeua6pt6p7Te8JuofcIaJWaZEhgiOuFqskm9sjQ9yi5qJkOEQXCmCRFCS5uYBpk0/1tuwYXJwtro9GdxHJMI", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2Gj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWcwbThxM2tkdzMzM3N4cTI5dzduYzM2bWZmY3ZoODBndmNkMzlkEippbmoxbjl3Zmg3YTZjZzJ1Z2d5Z2FkOWFkbGo4M2E0eXdkenV2aHJtcHYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWcwbThxM2tkdzMzM3N4cTI5dzduYzM2bWZmY3ZoODBndmNkMzlkEippbmoxbjl3Zmg3YTZjZzJ1Z2d5Z2FkOWFkbGo4M2E0eXdkenV2aHJtcHYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFnMG04cTNrZHczMzNzeHEyOXc3bmMzNm1mZmN2aDgwZ3ZjZDM5ZBIqaW5qMW45d2ZoN2E2Y2cydWdneWdhZDlhZGxqODNhNHl3ZHp1dmhybXB2GkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAhKZIyozzEpDEuAl3ypUW3R3JoD7AtBIAujqq4wwPfVdEgQKAggBGOufARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkDMNT7feu38IDUKGBHpWaoydtomgYQZjGPXjj7pb8fEj0MshAm2XfDad53SLdLeKmsXMjQ5cXyYyH15EwUxDYSU", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMW54emhlOTRnc2M5anN5dWMzd3FrdW5qeXZzOHA0ZW1lMGd1NGtlEippbmoxbHFrZ3JkbGh5cWt5M3dnNnJtbnhkajVrd3Rlcjc0ZTJ1ajBtZmYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMW54emhlOTRnc2M5anN5dWMzd3FrdW5qeXZzOHA0ZW1lMGd1NGtlEippbmoxbHFrZ3JkbGh5cWt5M3dnNnJtbnhkajVrd3Rlcjc0ZTJ1ajBtZmYaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFueHpoZTk0Z3NjOWpzeXVjM3dxa3Vuanl2czhwNGVtZTBndTRrZRIqaW5qMWxxa2dyZGxoeXFreTN3ZzZybW54ZGo1a3d0ZXI3NGUydWowbWZmGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAxg89Ih7H74zbkYrMXXb55tjKWTQJQ3D2Sk00p5Y0/ZEEgQKAggBGIqVARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCo/7pJIihg01V2zd+y3WH++KyVIB4m7WC9DAHPRzJIAghGLVJkAJjzGWTHrIGlh7CIira+E0UeSdy1Ag4GMBfS", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTljaGVjeHd6dWZmMDlmbTY2YzUwM3gycm1majBreXp6ZmgzZnRmEippbmoxa3R2MjJhenZ0NWg4bnF6NDh3bmhxc2o5NnVsZTR4eDBkYXc3amoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTljaGVjeHd6dWZmMDlmbTY2YzUwM3gycm1majBreXp6ZmgzZnRmEippbmoxa3R2MjJhenZ0NWg4bnF6NDh3bmhxc2o5NnVsZTR4eDBkYXc3amoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajE5Y2hlY3h3enVmZjA5Zm02NmM1MDN4MnJtZmowa3l6emZoM2Z0ZhIqaW5qMWt0djIyYXp2dDVoOG5xejQ4d25ocXNqOTZ1bGU0eHgwZGF3N2pqGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAgVaAkMOV5+9OJP2xYw3tKy3aU3SiAIummY3gRAIGDj/EgQKAggBGOihARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBSSP+Fx12//aSYEjjLjr5gl5X4jOUktkOREMTfArsWVxl4Xl7cyV3f7kYAF7kBbQQqrgMerHsc9KePhRVoXB0k", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAzMGtrbDZ1eHlhaG04aGYwZWQ4ZjQwMmY2N2Eyajl4cmM0MnlmEippbmoxejVnNHBhcDdhOGhoeGFheTJwbmZ3ZzNhd241ZHFwNXI0c3Y4a2EaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMXAzMGtrbDZ1eHlhaG04aGYwZWQ4ZjQwMmY2N2Eyajl4cmM0MnlmEippbmoxejVnNHBhcDdhOGhoeGFheTJwbmZ3ZzNhd241ZHFwNXI0c3Y4a2EaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFwMzBra2w2dXh5YWhtOGhmMGVkOGY0MDJmNjdhMmo5eHJjNDJ5ZhIqaW5qMXo1ZzRwYXA3YThoaHhhYXkycG5md2czYXduNWRxcDVyNHN2OGthGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAl0obf7huaZwDxwoKhqdWfwakrBU8rFlrc/Ihiquc4P5EgQKAggBGIOAARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkCGyhKBN8mu+4qID3ZzBPskvusEorT6TXytayPg3k6UpGMaLx38dXS9wmX2yrLrn4G67rihS/fKVCG2yMhdwk4y", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTR0NWY5NG01Zmc0djZkcnM0cXFrZDNkNzMzeTZzczBsanl5cWxtEippbmoxaG05dWhtaGtkdHJ5d3owbXFrOHZhNDAyZTN1ZDB5cGpscWZyM2oaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMTR0NWY5NG01Zmc0djZkcnM0cXFrZDNkNzMzeTZzczBsanl5cWxtEippbmoxaG05dWhtaGtkdHJ5d3owbXFrOHZhNDAyZTN1ZDB5cGpscWZyM2oaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajE0dDVmOTRtNWZnNHY2ZHJzNHFxa2QzZDczM3k2c3MwbGp5eXFsbRIqaW5qMWhtOXVobWhrZHRyeXd6MG1xazh2YTQwMmUzdWQweXBqbHFmcjNqGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA4fTy5A+DmuZfsXgjM48ntVqTXlOBW287TjXr91D0VGREgQKAggBGLuVARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBdYIUr7S8ky4p9g+WWi2Ef8Cnq9W5eRsQ6Q6YNcnr0rhzy6lgo31o9tJg6XB0ZHtaJb00qBdU8/igNmfhEZXqk", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWE0dzk5ejRxZ3FjZDZsNnU0ZGpmeWxjdWN0NTNkdXFrdXFucjVkEippbmoxNTI2azM2Y2szbGh2bXJnOHN5eWE4N3R5Njl1cGw4eXp6cms1ZnEaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWE0dzk5ejRxZ3FjZDZsNnU0ZGpmeWxjdWN0NTNkdXFrdXFucjVkEippbmoxNTI2azM2Y2szbGh2bXJnOHN5eWE4N3R5Njl1cGw4eXp6cms1ZnEaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFhNHc5OXo0cWdxY2Q2bDZ1NGRqZnlsY3VjdDUzZHVxa3VxbnI1ZBIqaW5qMTUyNmszNmNrM2xodm1yZzhzeXlhODd0eTY5dXBsOHl6enJrNWZxGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohArGVpE2Qtw7Pq625UTe8FZfqFAGc7IaBTZYPusGkLfnlEgQKAggBGMmAARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkDk8e2Du8ReB4Jz73ZkpdaWHIBSo5x0XtILIMecnJzbQ3TykogSC6OQ+tWOCFQp9mUhff++iCbVpFwAx08k+zYS", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3Gj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWdkdnRka2x2M3FnNDMzdnVuOWphcGFkYW5yOTYweDB1MjRxa3FsEippbmoxYWVhNG04ZmFydzlkcjljbTg3YWc3ZDB6Nm1jZnAybnhudjI4YTcaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWdkdnRka2x2M3FnNDMzdnVuOWphcGFkYW5yOTYweDB1MjRxa3FsEippbmoxYWVhNG04ZmFydzlkcjljbTg3YWc3ZDB6Nm1jZnAybnhudjI4YTcaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFnZHZ0ZGtsdjNxZzQzM3Z1bjlqYXBhZGFucjk2MHgwdTI0cWtxbBIqaW5qMWFlYTRtOGZhcnc5ZHI5Y204N2FnN2QwejZtY2ZwMm54bnYyOGE3GkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohAz+Zjrtxo20HOm1w4l5I57H9MAmt+87msPR5/1R/D1McEgQKAggBGMSqARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkDhGCp0+Crr0dfoCZrTb5otuTMtIxxTj9tWfxrfN7cnBTEgKFXVDlsXbay4Wlxz4QBVX4Fb6gtUgQbtDrazOEj9", + "CvMLCpUBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnUKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGhsKA2luahIUMTAwMDAwMDAwMDAwMDAwMDAwMDAKuQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSmAEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGj4KL3BlZ2d5MHg4N2FCM0I0Qzg2NjFlMDdENjM3MjM2MTIxMUI5NmVkNERjMzZCMUI1EgsxMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhubWRsZWF0dHU3dGV0dTZla3d3OXJtMGNtMDNlemc1amx0cnF6EippbmoxbTYzdTV5a3NhZ3Nzajd3Y3hmbDVzN3Q0dTg3azcwamZ5bm5rMmoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvdXNkYxILMTAwMDAwMDAwMDAKxQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSpAEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkoKL3BlZ2d5MHg0NEMyMWFmQWFGMjBjMjcwRUJiRjU5MTRDZmMzYjUwMjIxNzNGRUI3EhcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMArBAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKgAQoqaW5qMWhubWRsZWF0dHU3dGV0dTZla3d3OXJtMGNtMDNlemc1amx0cnF6EippbmoxbTYzdTV5a3NhZ3Nzajd3Y3hmbDVzN3Q0dTg3azcwamZ5bm5rMmoaRgo3ZmFjdG9yeS9pbmoxN3Z5dGR3cWN6cXo3Mmo2NXNhdWtwbHJrdGQ0Z3lmbWU1YWdmNmMvYWF2ZRILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2NydhILMTAwMDAwMDAwMDAKwAEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSnwEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkUKNmZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL2N2eBILMTAwMDAwMDAwMDAKwQEKHC9jb3Ntb3MuYmFuay52MWJldGExLk1zZ1NlbmQSoAEKKmluajFobm1kbGVhdHR1N3RldHU2ZWt3dzlybTBjbTAzZXpnNWpsdHJxehIqaW5qMW02M3U1eWtzYWdzc2o3d2N4Zmw1czd0NHU4N2s3MGpmeW5uazJqGkYKN2ZhY3RvcnkvaW5qMTd2eXRkd3FjenF6NzJqNjVzYXVrcGxya3RkNGd5Zm1lNWFnZjZjL3NoaWISCzEwMDAwMDAwMDAwGJ3+wwcSggEKYApUCi0vaW5qZWN0aXZlLmNyeXB0by52MWJldGExLmV0aHNlY3AyNTZrMS5QdWJLZXkSIwohA+OlGuxc2hUmrU+iVLb2MDnHy6W4exQyJrbMie9/Sv27EgQKAggBGJqQARIeChcKA2luahIQMTYwMDAwMDAwMDAwMDAwMBCAqMMBGkBTfe9A/RDSoHQCDunT60QgdtBrz3eIGvIgLEISRMAh/2w3+A9UB5SoDNGZNUfpNsxZyyq2Emi6pXuVpFzUCjI5" + ] + }, + "evidence":{ + "evidence":[ + + ] + }, + "lastCommit":{ + "height":"15793859", + "blockId":{ + "hash":"RRhRSiIf1E08mJAtACM4J1RFSVJ96eR0PBVuoD7rb2c=", + "partSetHeader":{ + "total":1, + "hash":"SeO5JkVtLUrhegd0rwDatDbvS5PQf/0Yvn+BmL1MOko=" + } + }, + "signatures":[ + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"y8ctJ4QpJ0S7ZTVY7RTE4z1hS2c=", + "timestamp":"2023-09-07T03:59:36.496584825Z", + "signature":"AxnPc5AEa6jizZuKhXUAkNi4vic6miF9emyAx+uSMco7oKVwoXGDJ6L0wneNGYOqpKkMVMQm4hcnWgDBjiBLAA==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"M5HjW2EATgO+uI+h2rRES5E7174=", + "timestamp":"2023-09-07T03:59:36.293269404Z", + "signature":"mjODCd7P7xHo6Gn+6Qi6/u+FI72noRs9/vcbvpiqz7Hr5hRNhk2a2Jj2tw59GC6cURd2Q6c/CdZhXHgVqzMdAg==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"Nv8cuLE25L4mgnBx8shCmG68xfc=", + "timestamp":"2023-09-07T03:59:36.393462082Z", + "signature":"NyTk5W6WLxEbouVJ7LxSwV88FnH/CtmXkr6JczPqEehdrymqrGqT02OJLutGVsBmrPEkMhwa2BegkqvmPLJrBQ==" + }, + { + "blockIdFlag":"BLOCK_ID_FLAG_COMMIT", + "validatorAddress":"ObUXYdS8jfTSNPonUBFPJkft7eA=", + "timestamp":"2023-09-07T03:59:36.296674286Z", + "signature":"OAwmf7pEjsXbwIWMD5HbzWiae6OAn0ME49FbXaRLvKIYKWSDKv9f0gprsgRJznOdj60SontlntwmvV+23MV6DQ==" + } + ], + "round":0 + } + } +} +``` + + + +
ParameterTypeDescription
block_idBlockIDBlock identifier
sdk_blockBlockBlock details
+ + +
+ +**BlockID** + + + +
ParameterTypeDescription
hashBytesBlock hash
part_set_headerPartSetHeader
+ + +
+ +**PartSetHeader** + + + +
ParameterTypeDescription
totalInteger
hashBytes
+ + +
+ +**Block** + + + + + +
ParameterTypeDescription
headerHeaderHeader information
dataDataBlock data
evidenceEvidenceList
last_commitCommit
+ + +
+ +**Header** + + + + + + + + + + + + + + + +
ParameterTypeDescription
versionConsensus
chain_idStringChain identifier
heightIntegerBlock height
timeTimeBlock time
last_block_idBlockIDPrevious block identifier
last_commit_hashBytesLast commit hash
data_hashBytesBlock data hash
validators_hashBytesValidators information hash
next_validators_hashBytesValidators information hash
consensus_hashBytesConsensus information hash
app_hashBytesApplication hash
last_result_hashBytesLast result hash
evidence_hashBytesEvidence data hash
proposer_addressStringBlock proposer's address
+ + +
+ +**Consensus** + + + + + + + + + + + + + + + +
ParameterTypeDescription
versionConsensus
chain_idStringChain identifier
heightIntegerBlock height
timeTimeBlock time
last_block_idBlockIDPrevious block identifier
last_commit_hashBytesLast commit hash
data_hashBytesBlock data hash
validators_hashBytesValidators information hash
next_validators_hashBytesValidators information hash
consensus_hashBytesConsensus information hash
app_hashBytesApplication hash
last_result_hashBytesLast result hash
evidence_hashBytesEvidence data hash
proposer_addressStringBlock proposer's address
+ + +
+ +**Data** + + +
ParameterTypeDescription
txsBytes ArrayTxs that will be applied by state @ block.Height+1. NOTE: not all txs here are valid. We're just agreeing on the order first. This means that block.AppHash does not include these txs.
+ + +
+ +**EvidenceList** + + +
ParameterTypeDescription
evidenceEvidence ArrayBlock evidence
+ + +
+ +**Evidence** + + +
ParameterTypeDescription
sumisEvidence_SumValid types for 'sum' are Evidence_DuplicateVoteEvidence and Evidence_LightClientAttackEvidence
+ + +
+ +**Commit** + + + + + +
ParameterTypeDescription
heightIntegerBlock height
roundIntegerConsensus round
block_idBlockIDBlock identifier
signaturesCommitSig ArraySigantures
+ + +
+ +**CommitSig** + + + + + +
ParameterTypeDescription
block_id_flagBlockIDFlagBlock height
validator_addressBytesValidator address
timestampTimeBlock time
signatureBytesBlock signature
+ + +
+ +**BlockIDFlag** + + + + + +
CodeName
0BLOCK_ID_FLAG_UNKNOWN
1BLOCK_ID_FLAG_ABSENT
2BLOCK_ID_FLAG_COMMIT
3BLOCK_ID_FLAG_NIL
+ + + +## GetLatestValidatorSet + +Get the latest validator-set + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + validator_set = await client.fetch_latest_validator_set() + print(validator_set) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchLatestValidatorSet(ctx) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res.String()) + +} +``` + + +No parameters + + +### Response Parameters +> Response Example: + +``` json +{ + "blockHeight":"23201498", + "validators":[ + { + "address":"injvalcons1xml3ew93xmjtuf5zwpcl9jzznphte30hvdre9a", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"Bi/7vbVB1uj/zz40/aozZOvVBFkV6hLqqxBIQr5kSc4=" + }, + "votingPower":"200001152291153", + "proposerPriority":"234447499678197" + }, + { + "address":"injvalcons18x63wcw5hjxlf535lgn4qy20yer7mm0qedu0la", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"WlL4lTR+iTbd0rn3xP6oH0juOnGRZ+Hh73Oj6/Lt/Wg=" + }, + "votingPower":"200000153326260", + "proposerPriority":"-270628320740096" + }, + { + "address":"injvalcons1xwg7xkmpqp8q804c37sa4dzyfwgnh4a74ll9pz", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"Puku/I45dAZ4wKeN+rbYKnmuUUA7Yh7/TrKX3ZoTmk4=" + }, + "votingPower":"199859452893177", + "proposerPriority":"-192489141052575" + }, + { + "address":"injvalcons1e0rj6fuy9yn5fwm9x4vw69xyuv7kzjm8rvw5r3", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"1mF7OEpB9A60O0e+64pICbqS/nN8VnsVfoySMEW2w1Q=" + }, + "votingPower":"199826816954736", + "proposerPriority":"228669962114476" + } + ], + "pagination":{ + "total":"4", + "nextKey":"" + } +} +``` + + + + +
ParameterTypeDescription
block_heightIntegerBlock height
validatorsValidator ArrayList of validators
paginationPageResponsePagination information in the response
+ + +
+ +**Validator** + + + + + +
ParameterTypeDescription
addressStringValidator's address
pub_keyAnyValidator's public key
voting_powerIntegerValidator's voting power
proposer_priorityInteger
+ + +
+ +**PageResponse** + + + +
ParameterTypeDescription
next_keyByte ArrayThe key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results.
totalIntegerTotal number of results available if PageRequest.count_total was set, its value is undefined otherwise
+ + + +## GetValidatorSetByHeight + +Get the validator-set at a given height + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + pagination = PaginationOption(skip=2, limit=4) + + validator_set = await client.fetch_validator_set_by_height(height=23040174, pagination=pagination) + print(validator_set) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + height := int64(23040174) + pagination := query.PageRequest{Offset: 2, Limit: 10} + res, err := chainClient.FetchValidatorSetByHeight(ctx, height, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res.String()) + +} +``` + + + + +
ParameterTypeDescriptionRequired
heightIntegerBlock heightYes
paginationPageRequestThe optional pagination for the requestNo
+ + +
+ +**PageRequest** + + + + + + +
ParameterTypeDescriptionRequired
keyByte ArrayKey is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key should be setNo
offsetIntegerNumeric offset that can be used when key is unavailable. It is less efficient than using key. Only one of offset or key should be setNo
limitIntegerTotal number of results to be returned in the result pageNo
count_totalBooleanSet to true to indicate that the result set should include a count of the total number of items available for pagination in UIs. It is only respected when offset is used. It is ignored when key is setNo
reverseBooleanReverse is set to true if results are to be returned in the descending orderNo
+ + + +### Response Parameters +> Response Example: + +``` json +{ + "blockHeight":"23040174", + "validators":[ + { + "address":"injvalcons1xml3ew93xmjtuf5zwpcl9jzznphte30hvdre9a", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"Bi/7vbVB1uj/zz40/aozZOvVBFkV6hLqqxBIQr5kSc4=" + }, + "votingPower":"200001152291142", + "proposerPriority":"-117113073985972" + }, + { + "address":"injvalcons18x63wcw5hjxlf535lgn4qy20yer7mm0qedu0la", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"WlL4lTR+iTbd0rn3xP6oH0juOnGRZ+Hh73Oj6/Lt/Wg=" + }, + "votingPower":"200000153326249", + "proposerPriority":"-30678774375098" + }, + { + "address":"injvalcons1xwg7xkmpqp8q804c37sa4dzyfwgnh4a74ll9pz", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"Puku/I45dAZ4wKeN+rbYKnmuUUA7Yh7/TrKX3ZoTmk4=" + }, + "votingPower":"199859452893172", + "proposerPriority":"358858430481236" + }, + { + "address":"injvalcons1e0rj6fuy9yn5fwm9x4vw69xyuv7kzjm8rvw5r3", + "pubKey":{ + "@type":"/cosmos.crypto.ed25519.PubKey", + "key":"1mF7OEpB9A60O0e+64pICbqS/nN8VnsVfoySMEW2w1Q=" + }, + "votingPower":"199826816954540", + "proposerPriority":"504834849146021" + } + ], + "pagination":{ + "total":"7", + "nextKey":"" + } +} +``` + + + + +
ParameterTypeDescription
block_heightIntegerBlock height
validatorsValidator ArrayList of validators
paginationPageResponsePagination information in the response
+ + +
+ +**Validator** + + + + + +
ParameterTypeDescription
addressStringValidator's address
pub_keyAnyValidator's public key
voting_powerIntegerValidator's voting power
proposer_priorityInteger
+ + +
+ +**PageResponse** + + + +
ParameterTypeDescription
next_keyByte ArrayThe key to be passed to PageRequest.key to query the next page most efficiently. It will be empty if there are no more results.
totalIntegerTotal number of results available if PageRequest.count_total was set, its value is undefined otherwise
+ + + +## ABCIQuery + +Defines a query handler that supports ABCI queries directly to the application, bypassing Tendermint completely. The ABCI query must contain a valid and supported path, including app, custom, p2p, and store. + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + + + +
ParameterTypeDescriptionRequired
dataBytesQuery dataNo
pathStringQuery pathYes
haightIntegerBlock heightNo
proveBooleanNo
+ + +### Response Parameters +> Response Example: + +``` json + +``` + + + + + + + + + + +
ParameterTypeDescription
codeIntegerQuery result code (zero: success, non-zero: error
logString
infoString
indexInteger
keyBytes
valueBytes
proof_opsProofOps
heightIntegerBlock height
codespaceString
+ + +
+ +**ProofOps** + + +
ParameterTypeDescription
opsProofOp Array
+ + +
+ +**ProofOp** + + + + +
ParameterTypeDescription
typeString
keyBytes
dataBytes
+ diff --git a/source/index.html.md b/source/index.html.md index 76cd85f0..69923c3d 100644 --- a/source/index.html.md +++ b/source/index.html.md @@ -39,6 +39,7 @@ includes: - insurance - oracle - staking + - tendermint - tokenfactory - wasm - wasmx diff --git a/source/json_tables/chain/tendermint/abciQueryRequest.json b/source/json_tables/chain/tendermint/abciQueryRequest.json new file mode 100644 index 00000000..fec3c0c8 --- /dev/null +++ b/source/json_tables/chain/tendermint/abciQueryRequest.json @@ -0,0 +1,6 @@ +[ + {"Parameter": "data", "Type": "Bytes", "Description": "Query data", "Required": "No"}, + {"Parameter": "path", "Type": "String", "Description": "Query path", "Required": "Yes"}, + {"Parameter": "haight", "Type": "Integer", "Description": "Block height", "Required": "No"}, + {"Parameter": "prove", "Type": "Boolean", "Description": "", "Required": "No"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/abciQueryResponse.json b/source/json_tables/chain/tendermint/abciQueryResponse.json new file mode 100644 index 00000000..f73f93c0 --- /dev/null +++ b/source/json_tables/chain/tendermint/abciQueryResponse.json @@ -0,0 +1,11 @@ +[ + {"Parameter": "code", "Type": "Integer", "Description": "Query result code (zero: success, non-zero: error"}, + {"Parameter": "log", "Type": "String", "Description": ""}, + {"Parameter": "info", "Type": "String", "Description": ""}, + {"Parameter": "index", "Type": "Integer", "Description": ""}, + {"Parameter": "key", "Type": "Bytes", "Description": ""}, + {"Parameter": "value", "Type": "Bytes", "Description": ""}, + {"Parameter": "proof_ops", "Type": "ProofOps", "Description": ""}, + {"Parameter": "height", "Type": "Integer", "Description": "Block height"}, + {"Parameter": "codespace", "Type": "String", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/block.json b/source/json_tables/chain/tendermint/block.json new file mode 100644 index 00000000..f5f04ae2 --- /dev/null +++ b/source/json_tables/chain/tendermint/block.json @@ -0,0 +1,6 @@ +[ + {"Parameter": "header", "Type": "Header", "Description": "Header information"}, + {"Parameter": "data", "Type": "Data", "Description": "Block data"}, + {"Parameter": "evidence", "Type": "EvidenceList", "Description": ""}, + {"Parameter": "last_commit", "Type": "Commit", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/blockID.json b/source/json_tables/chain/tendermint/blockID.json new file mode 100644 index 00000000..e4a6d109 --- /dev/null +++ b/source/json_tables/chain/tendermint/blockID.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "hash", "Type": "Bytes", "Description": "Block hash"}, + {"Parameter": "part_set_header", "Type": "PartSetHeader", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/blockIDFlag.json b/source/json_tables/chain/tendermint/blockIDFlag.json new file mode 100644 index 00000000..614a3ad9 --- /dev/null +++ b/source/json_tables/chain/tendermint/blockIDFlag.json @@ -0,0 +1,6 @@ +[ + {"Code": "0", "Name": "BLOCK_ID_FLAG_UNKNOWN"}, + {"Code": "1", "Name": "BLOCK_ID_FLAG_ABSENT"}, + {"Code": "2", "Name": "BLOCK_ID_FLAG_COMMIT"}, + {"Code": "3", "Name": "BLOCK_ID_FLAG_NIL"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/commit.json b/source/json_tables/chain/tendermint/commit.json new file mode 100644 index 00000000..6ce8184b --- /dev/null +++ b/source/json_tables/chain/tendermint/commit.json @@ -0,0 +1,6 @@ +[ + {"Parameter": "height", "Type": "Integer", "Description": "Block height"}, + {"Parameter": "round", "Type": "Integer", "Description": "Consensus round"}, + {"Parameter": "block_id", "Type": "BlockID", "Description": "Block identifier"}, + {"Parameter": "signatures", "Type": "CommitSig Array", "Description": "Sigantures"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/commitSig.json b/source/json_tables/chain/tendermint/commitSig.json new file mode 100644 index 00000000..31107bab --- /dev/null +++ b/source/json_tables/chain/tendermint/commitSig.json @@ -0,0 +1,6 @@ +[ + {"Parameter": "block_id_flag", "Type": "BlockIDFlag", "Description": "Block height"}, + {"Parameter": "validator_address", "Type": "Bytes", "Description": "Validator address"}, + {"Parameter": "timestamp", "Type": "Time", "Description": "Block time"}, + {"Parameter": "signature", "Type": "Bytes", "Description": "Block signature"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/consensus.json b/source/json_tables/chain/tendermint/consensus.json new file mode 100644 index 00000000..91a5e695 --- /dev/null +++ b/source/json_tables/chain/tendermint/consensus.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "block", "Type": "Integer", "Description": ""}, + {"Parameter": "app", "Type": "Integer", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/data.json b/source/json_tables/chain/tendermint/data.json new file mode 100644 index 00000000..613a9f87 --- /dev/null +++ b/source/json_tables/chain/tendermint/data.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "txs", "Type": "Bytes Array", "Description": "Txs that will be applied by state @ block.Height+1. NOTE: not all txs here are valid. We're just agreeing on the order first. This means that block.AppHash does not include these txs."} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/defaultNodeInfo.json b/source/json_tables/chain/tendermint/defaultNodeInfo.json new file mode 100644 index 00000000..10cb5cde --- /dev/null +++ b/source/json_tables/chain/tendermint/defaultNodeInfo.json @@ -0,0 +1,10 @@ +[ + {"Parameter": "protocol_version", "Type": "ProtocolVersion", "Description": "Protocol version information"}, + {"Parameter": "default_nod_id", "Type": "String", "Description": "Node identifier"}, + {"Parameter": "listen_addr", "Type": "String", "Description": "URI of the node's listening endpoint"}, + {"Parameter": "network", "Type": "String", "Description": "The chain network name"}, + {"Parameter": "version", "Type": "String", "Description": "The version number"}, + {"Parameter": "channels", "Type": "Bytes", "Description": "Channels information"}, + {"Parameter": "moniker", "Type": "String", "Description": ""}, + {"Parameter": "other", "Type": "DefaultNodeInfoOther", "Description": "Extra node information"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/defaultNodeInfoOther.json b/source/json_tables/chain/tendermint/defaultNodeInfoOther.json new file mode 100644 index 00000000..f3b58931 --- /dev/null +++ b/source/json_tables/chain/tendermint/defaultNodeInfoOther.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "tx_index", "Type": "String", "Description": "TX indexing status (on/off)"}, + {"Parameter": "rpc_address", "Type": "String", "Description": "URI for RPC connections"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/evidence.json b/source/json_tables/chain/tendermint/evidence.json new file mode 100644 index 00000000..55055422 --- /dev/null +++ b/source/json_tables/chain/tendermint/evidence.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "sum", "Type": "isEvidence_Sum", "Description": "Valid types for 'sum' are Evidence_DuplicateVoteEvidence and Evidence_LightClientAttackEvidence"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/evidenceList.json b/source/json_tables/chain/tendermint/evidenceList.json new file mode 100644 index 00000000..19e28976 --- /dev/null +++ b/source/json_tables/chain/tendermint/evidenceList.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "evidence", "Type": "Evidence Array", "Description": "Block evidence"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getBlockByHeightRequest.json b/source/json_tables/chain/tendermint/getBlockByHeightRequest.json new file mode 100644 index 00000000..4bde65be --- /dev/null +++ b/source/json_tables/chain/tendermint/getBlockByHeightRequest.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "height", "Type": "Integer", "Description": "Block height", "Required": "Yes"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getBlockByHeightResponse.json b/source/json_tables/chain/tendermint/getBlockByHeightResponse.json new file mode 100644 index 00000000..518ddbeb --- /dev/null +++ b/source/json_tables/chain/tendermint/getBlockByHeightResponse.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "block_id", "Type": "BlockID", "Description": "Block identifier"}, + {"Parameter": "sdk_block", "Type": "Block", "Description": "Block details"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getLatestBlockResponse.json b/source/json_tables/chain/tendermint/getLatestBlockResponse.json new file mode 100644 index 00000000..518ddbeb --- /dev/null +++ b/source/json_tables/chain/tendermint/getLatestBlockResponse.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "block_id", "Type": "BlockID", "Description": "Block identifier"}, + {"Parameter": "sdk_block", "Type": "Block", "Description": "Block details"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getLatestValidatorSetResponse.json b/source/json_tables/chain/tendermint/getLatestValidatorSetResponse.json new file mode 100644 index 00000000..45dbe73d --- /dev/null +++ b/source/json_tables/chain/tendermint/getLatestValidatorSetResponse.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "block_height", "Type": "Integer", "Description": "Block height"}, + {"Parameter": "validators", "Type": "Validator Array", "Description": "List of validators"}, + {"Parameter": "pagination", "Type": "PageResponse", "Description": "Pagination information in the response"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getNodeInfoResponse.json b/source/json_tables/chain/tendermint/getNodeInfoResponse.json new file mode 100644 index 00000000..8bbba07b --- /dev/null +++ b/source/json_tables/chain/tendermint/getNodeInfoResponse.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "default_node_info", "Type": "DefaultNodeInfo", "Description": "Node information"}, + {"Parameter": "application_version", "Type": "VersionInfo", "Description": "Node version information"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getSyncingResponse.json b/source/json_tables/chain/tendermint/getSyncingResponse.json new file mode 100644 index 00000000..e27b5544 --- /dev/null +++ b/source/json_tables/chain/tendermint/getSyncingResponse.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "syncing", "Type": "Boolean", "Description": "Syncing status"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getValidatorSetByHeightRequest.json b/source/json_tables/chain/tendermint/getValidatorSetByHeightRequest.json new file mode 100644 index 00000000..25dba463 --- /dev/null +++ b/source/json_tables/chain/tendermint/getValidatorSetByHeightRequest.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "height", "Type": "Integer", "Description": "Block height", "Required": "Yes"}, + {"Parameter": "pagination", "Type": "PageRequest", "Description": "The optional pagination for the request", "Required": "No"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/getValidatorSetByHeightResponse.json b/source/json_tables/chain/tendermint/getValidatorSetByHeightResponse.json new file mode 100644 index 00000000..45dbe73d --- /dev/null +++ b/source/json_tables/chain/tendermint/getValidatorSetByHeightResponse.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "block_height", "Type": "Integer", "Description": "Block height"}, + {"Parameter": "validators", "Type": "Validator Array", "Description": "List of validators"}, + {"Parameter": "pagination", "Type": "PageResponse", "Description": "Pagination information in the response"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/header.json b/source/json_tables/chain/tendermint/header.json new file mode 100644 index 00000000..b1a3bcc3 --- /dev/null +++ b/source/json_tables/chain/tendermint/header.json @@ -0,0 +1,16 @@ +[ + {"Parameter": "version", "Type": "Consensus", "Description": ""}, + {"Parameter": "chain_id", "Type": "String", "Description": "Chain identifier"}, + {"Parameter": "height", "Type": "Integer", "Description": "Block height"}, + {"Parameter": "time", "Type": "Time", "Description": "Block time"}, + {"Parameter": "last_block_id", "Type": "BlockID", "Description": "Previous block identifier"}, + {"Parameter": "last_commit_hash", "Type": "Bytes", "Description": "Last commit hash"}, + {"Parameter": "data_hash", "Type": "Bytes", "Description": "Block data hash"}, + {"Parameter": "validators_hash", "Type": "Bytes", "Description": "Validators information hash"}, + {"Parameter": "next_validators_hash", "Type": "Bytes", "Description": "Validators information hash"}, + {"Parameter": "consensus_hash", "Type": "Bytes", "Description": "Consensus information hash"}, + {"Parameter": "app_hash", "Type": "Bytes", "Description": "Application hash"}, + {"Parameter": "last_result_hash", "Type": "Bytes", "Description": "Last result hash"}, + {"Parameter": "evidence_hash", "Type": "Bytes", "Description": "Evidence data hash"}, + {"Parameter": "proposer_address", "Type": "String", "Description": "Block proposer's address"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/module.json b/source/json_tables/chain/tendermint/module.json new file mode 100644 index 00000000..c172e38b --- /dev/null +++ b/source/json_tables/chain/tendermint/module.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "path", "Type": "String", "Description": "Module path"}, + {"Parameter": "version", "Type": "String", "Description": "Module version"}, + {"Parameter": "sum", "Type": "String", "Description": "Checksum"} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/partSetHeader.json b/source/json_tables/chain/tendermint/partSetHeader.json new file mode 100644 index 00000000..5d363ecb --- /dev/null +++ b/source/json_tables/chain/tendermint/partSetHeader.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "total", "Type": "Integer", "Description": ""}, + {"Parameter": "hash", "Type": "Bytes", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/proofOp.json b/source/json_tables/chain/tendermint/proofOp.json new file mode 100644 index 00000000..74f049f3 --- /dev/null +++ b/source/json_tables/chain/tendermint/proofOp.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "type", "Type": "String", "Description": ""}, + {"Parameter": "key", "Type": "Bytes", "Description": ""}, + {"Parameter": "data", "Type": "Bytes", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/proofOps.json b/source/json_tables/chain/tendermint/proofOps.json new file mode 100644 index 00000000..7ca18025 --- /dev/null +++ b/source/json_tables/chain/tendermint/proofOps.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "ops", "Type": "ProofOp Array", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/protocolVersion.json b/source/json_tables/chain/tendermint/protocolVersion.json new file mode 100644 index 00000000..b7a88458 --- /dev/null +++ b/source/json_tables/chain/tendermint/protocolVersion.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "p2p", "Type": "Integer", "Description": ""}, + {"Parameter": "block", "Type": "Integer", "Description": ""}, + {"Parameter": "app", "Type": "Integer", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/validator.json b/source/json_tables/chain/tendermint/validator.json new file mode 100644 index 00000000..bbc221a7 --- /dev/null +++ b/source/json_tables/chain/tendermint/validator.json @@ -0,0 +1,6 @@ +[ + {"Parameter": "address", "Type": "String", "Description": "Validator's address"}, + {"Parameter": "pub_key", "Type": "Any", "Description": "Validator's public key"}, + {"Parameter": "voting_power", "Type": "Integer", "Description": "Validator's voting power"}, + {"Parameter": "proposer_priority", "Type": "Integer", "Description": ""} +] \ No newline at end of file diff --git a/source/json_tables/chain/tendermint/versionInfo.json b/source/json_tables/chain/tendermint/versionInfo.json new file mode 100644 index 00000000..7cca363a --- /dev/null +++ b/source/json_tables/chain/tendermint/versionInfo.json @@ -0,0 +1,10 @@ +[ + {"Parameter": "name", "Type": "String", "Description": "The chain name"}, + {"Parameter": "app_name", "Type": "String", "Description": "Application name"}, + {"Parameter": "version", "Type": "String", "Description": "Application version"}, + {"Parameter": "git_commit", "Type": "String", "Description": "Git commit hash"}, + {"Parameter": "build_tags", "Type": "String", "Description": "Application build tags"}, + {"Parameter": "go_version", "Type": "String", "Description": "GoLang version used to compile the application"}, + {"Parameter": "build_deps", "Type": "Module Array", "Description": "Application dependencies"}, + {"Parameter": "cosmos_sdk_version", "Type": "String", "Description": "Cosmos SDK version used by the application"} +] \ No newline at end of file