diff --git a/api.proto b/api.proto index 71204cb..4c84657 100644 --- a/api.proto +++ b/api.proto @@ -17,6 +17,7 @@ service ApiService { option (google.api.http) = { get: "/subscribe" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "WebSockets"; } // Halts @@ -26,8 +27,9 @@ service ApiService { option (google.api.http) = { get: "/halts/{height}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Vote"; } - + // Genesis // // Genesis returns genesis file. @@ -35,6 +37,7 @@ service ApiService { option (google.api.http) = { get: "/genesis" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // MinGasPrice @@ -44,6 +47,7 @@ service ApiService { option (google.api.http) = { get: "/min_gas_price" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Price"; } // NetInfo @@ -53,6 +57,7 @@ service ApiService { option (google.api.http) = { get: "/net_info" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // Status @@ -62,6 +67,7 @@ service ApiService { option (google.api.http) = { get: "/status" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // Address @@ -71,6 +77,7 @@ service ApiService { option (google.api.http) = { get: "/address/{address}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Balance"; } // Addresses @@ -80,6 +87,7 @@ service ApiService { option (google.api.http) = { get: "/addresses" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Balance"; } // Block @@ -89,6 +97,7 @@ service ApiService { option (google.api.http) = { get: "/block/{height}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // Candidate @@ -100,6 +109,7 @@ service ApiService { option (google.api.http) = { get: "/candidate/{public_key}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Validator"; } // Candidates @@ -109,6 +119,7 @@ service ApiService { option (google.api.http) = { get: "/candidates" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Validator"; } // CoinInfoById @@ -118,6 +129,7 @@ service ApiService { option (google.api.http) = { get: "/coin_info_by_id/{id}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; } // CoinInfo @@ -127,6 +139,7 @@ service ApiService { option (google.api.http) = { get: "/coin_info/{symbol}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; } // EstimateCoinBuy @@ -136,6 +149,7 @@ service ApiService { option (google.api.http) = { get: "/estimate_coin_buy" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; } // EstimateCoinSell @@ -145,6 +159,7 @@ service ApiService { option (google.api.http) = { get: "/estimate_coin_sell" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; } // EstimateCoinSellAll @@ -154,6 +169,7 @@ service ApiService { option (google.api.http) = { get: "/estimate_coin_sell_all" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; } // EstimateTxCommission @@ -163,6 +179,7 @@ service ApiService { option (google.api.http) = { get: "/estimate_tx_commission/{tx}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Price"; } // Events @@ -172,6 +189,7 @@ service ApiService { option (google.api.http) = { get: "/events/{height}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Event"; } // MaxGasPrice @@ -181,6 +199,7 @@ service ApiService { option (google.api.http) = { get: "/max_gas_price" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Price"; } // MissedBlocks @@ -190,6 +209,7 @@ service ApiService { option (google.api.http) = { get: "/missed_blocks/{public_key}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Validator"; } // SendTransaction @@ -204,12 +224,11 @@ service ApiService { body: "*" } }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - external_docs: { - url: "https://www.minter.network/docs#transactions" - description: "More about Minter transactions" - } + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).external_docs = { + url: "https://www.minter.network/docs#transactions" + description: "More about Minter transactions" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // Transaction @@ -219,6 +238,7 @@ service ApiService { option (google.api.http) = { get: "/transaction/{hash}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // Transactions @@ -228,6 +248,7 @@ service ApiService { option (google.api.http) = { get: "/transactions" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // UnconfirmedTxs @@ -237,6 +258,7 @@ service ApiService { option (google.api.http) = { get: "/unconfirmed_txs" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } // Validators @@ -246,6 +268,7 @@ service ApiService { option (google.api.http) = { get: "/validators" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Validator"; } // Frozen @@ -255,6 +278,7 @@ service ApiService { option (google.api.http) = { get: "/frozen/{address}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Balance"; } // WaitList @@ -264,6 +288,7 @@ service ApiService { option (google.api.http) = { get: "/waitlist/{address}" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Balance"; } // TestBlock @@ -273,5 +298,76 @@ service ApiService { option (google.api.http) = { get: "/test/block" }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Test"; + } + + // SwapPool + // + // + rpc SwapPool (SwapPoolRequest) returns (SwapPoolResponse) { + option (google.api.http) = { + get: "/swap_pool/{coin0}/{coin1}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; + } + + // SwapPoolProvider + // + // + rpc SwapPoolProvider (SwapPoolProviderRequest) returns (SwapPoolResponse) { + option (google.api.http) = { + get: "/swap_pool/{coin0}/{coin1}/{provider}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Coin"; + } + + // PriceCommission + // + // + rpc PriceCommission (PriceCommissionRequest) returns (PriceCommissionResponse) { + option (google.api.http) = { + get: "/price_commissions" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Price"; + } + + // VersionNetwork + // + // + rpc VersionNetwork (VersionNetworkRequest) returns (VersionNetworkResponse) { + option (google.api.http) = { + get: "/version_network" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; + } + + // CommissionVotes + // + // + rpc CommissionVotes (CommissionVotesRequest) returns (CommissionVotesResponse) { + option (google.api.http) = { + get: "/commission_votes/{target_version}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Vote"; + } + + // UpdateVotes + // + // + rpc UpdateVotes (UpdateVotesRequest) returns (UpdateVotesResponse) { + option (google.api.http) = { + get: "/update_votes/{target_version}" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Vote"; + } + + // Blocks + // + // + rpc Blocks (BlocksRequest) returns (BlocksResponse) { + option (google.api.http) = { + get: "/blocks" + }; + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation).tags = "Blockchain"; } } diff --git a/api_pb/api.pb.go b/api_pb/api.pb.go index a15dd4f..8786a96 100644 --- a/api_pb/api.pb.go +++ b/api_pb/api.pb.go @@ -39,183 +39,256 @@ var file_api_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, - 0xed, 0x15, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, + 0x88, 0x1f, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x05, 0x48, 0x61, 0x6c, 0x74, 0x73, 0x12, - 0x14, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x61, 0x6c, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x48, - 0x61, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x68, 0x61, 0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x4c, 0x0a, 0x07, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x67, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x12, 0x5a, 0x0a, 0x0b, 0x4d, 0x69, 0x6e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x6e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, - 0x0e, 0x2f, 0x6d, 0x69, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x4d, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x49, + 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x92, 0x41, 0x0c, 0x0a, 0x0a, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x05, 0x48, 0x61, 0x6c, 0x74, 0x73, 0x12, 0x14, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x61, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x61, + 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x68, 0x61, 0x6c, 0x74, 0x73, 0x2f, 0x7b, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x7d, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x5b, 0x0a, + 0x07, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x0a, 0x12, 0x08, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x92, 0x41, 0x0c, 0x0a, 0x0a, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x64, 0x0a, 0x0b, 0x4d, 0x69, + 0x6e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x6e, 0x47, 0x61, + 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x6d, 0x69, 0x6e, 0x5f, 0x67, 0x61, 0x73, + 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x92, 0x41, 0x07, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x5c, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x92, + 0x41, 0x0c, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x58, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, - 0x12, 0x07, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x56, 0x0a, 0x07, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x7d, 0x12, 0x54, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x18, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x61, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, - 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, - 0x12, 0x17, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x12, 0x58, 0x0a, 0x0a, 0x43, 0x61, 0x6e, - 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, - 0x79, 0x49, 0x64, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x63, - 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x2f, 0x7b, - 0x69, 0x64, 0x7d, 0x12, 0x5a, 0x0a, 0x08, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x63, 0x6f, 0x69, - 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x7b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x7d, 0x12, - 0x6e, 0x0a, 0x0f, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x75, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, - 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, - 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x65, 0x73, - 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x62, 0x75, 0x79, 0x12, - 0x72, 0x0a, 0x10, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, - 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, - 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, - 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, - 0x2f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x73, - 0x65, 0x6c, 0x6c, 0x12, 0x7f, 0x0a, 0x13, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, - 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, + 0x12, 0x07, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x92, 0x41, 0x0c, 0x0a, 0x0a, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x62, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, + 0x92, 0x41, 0x09, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x09, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x92, 0x41, 0x09, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5c, + 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x92, 0x41, 0x0c, + 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x6f, 0x0a, 0x09, + 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2f, 0x7b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x92, + 0x41, 0x0b, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x66, 0x0a, + 0x0a, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x63, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x92, 0x41, 0x0b, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x67, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x79, 0x49, 0x64, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, + 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x63, + 0x0a, 0x08, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x2f, 0x7b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x7d, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x77, 0x0a, 0x0f, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, + 0x12, 0x2f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, + 0x62, 0x75, 0x79, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x7b, 0x0a, 0x10, + 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, + 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x6c, - 0x5f, 0x61, 0x6c, 0x6c, 0x12, 0x87, 0x01, 0x0a, 0x14, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x92, 0x41, 0x06, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x88, 0x01, 0x0a, 0x13, 0x45, 0x73, + 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, + 0x6c, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, + 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, + 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x19, 0x12, 0x17, 0x2f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x92, 0x41, 0x06, 0x0a, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x91, 0x01, 0x0a, 0x14, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x78, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x78, 0x7d, 0x12, 0x51, - 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, - 0x10, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x7d, 0x12, 0x5e, 0x0a, 0x0b, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x10, 0x12, 0x0e, 0x2f, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x6e, 0x0a, 0x0c, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x65, - 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x2f, 0x7b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, - 0x7d, 0x12, 0xde, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, - 0x16, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x78, 0x7d, 0x5a, 0x16, 0x22, 0x11, 0x2f, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x92, - 0x41, 0x50, 0x22, 0x4e, 0x0a, 0x1e, 0x4d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, - 0x20, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, - 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x15, 0x12, 0x13, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x2f, 0x7b, 0x68, 0x61, 0x73, 0x68, 0x7d, 0x12, 0x60, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x69, 0x0a, 0x0e, 0x55, 0x6e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, 0x78, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, - 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, - 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x12, 0x12, 0x10, 0x2f, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, - 0x5f, 0x74, 0x78, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x52, - 0x0a, 0x06, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, - 0x11, 0x2f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x7d, 0x12, 0x5a, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x77, 0x61, 0x69, 0x74, - 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0x4f, - 0x0a, 0x09, 0x54, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x78, 0x7d, 0x92, 0x41, + 0x07, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x92, 0x41, 0x07, 0x0a, 0x05, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0b, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, + 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x92, 0x41, 0x07, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x7c, 0x0a, 0x0c, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, + 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x2f, 0x7b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x92, + 0x41, 0x0b, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0xed, 0x01, + 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x98, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x16, 0x2f, 0x73, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, + 0x74, 0x78, 0x7d, 0x5a, 0x16, 0x22, 0x11, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x92, 0x41, 0x50, 0x22, 0x4e, + 0x0a, 0x1e, 0x4d, 0x6f, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x4d, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x64, 0x6f, 0x63, + 0x73, 0x23, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x92, 0x41, + 0x0c, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x72, 0x0a, + 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x68, 0x61, 0x73, + 0x68, 0x7d, 0x92, 0x41, 0x0c, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x12, 0x6f, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x92, 0x41, 0x0c, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x12, 0x78, 0x0a, 0x0e, 0x55, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, + 0x64, 0x54, 0x78, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, 0x78, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x75, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x73, 0x92, 0x41, 0x0c, + 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x66, 0x0a, 0x0a, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x62, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x92, 0x41, 0x0b, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5e, 0x0a, 0x06, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x15, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x46, + 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x2f, 0x7b, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x92, 0x41, 0x09, 0x0a, 0x07, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x77, 0x61, + 0x69, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, + 0x92, 0x41, 0x09, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x09, + 0x54, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, + 0x12, 0x0b, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x92, 0x41, 0x06, + 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x12, 0x6a, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, + 0x6f, 0x6c, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x77, 0x61, 0x70, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, + 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x7b, 0x63, 0x6f, 0x69, 0x6e, 0x30, + 0x7d, 0x2f, 0x7b, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x7d, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x43, 0x6f, + 0x69, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x10, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, + 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x62, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x73, 0x77, 0x61, + 0x70, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x7b, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x7d, 0x2f, 0x7b, + 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x7d, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x7d, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x78, 0x0a, 0x0f, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x92, 0x41, 0x07, 0x0a, 0x05, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x92, + 0x41, 0x0c, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x87, + 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, + 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x2f, 0x7b, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x92, + 0x41, 0x06, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x92, 0x41, 0x06, 0x0a, 0x04, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x57, 0x0a, 0x06, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x15, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x09, 0x12, 0x07, 0x2f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x92, 0x41, 0x0c, 0x0a, 0x0a, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_api_proto_goTypes = []interface{}{ @@ -243,32 +316,45 @@ var file_api_proto_goTypes = []interface{}{ (*ValidatorsRequest)(nil), // 21: api_pb.ValidatorsRequest (*FrozenRequest)(nil), // 22: api_pb.FrozenRequest (*WaitListRequest)(nil), // 23: api_pb.WaitListRequest - (*SubscribeResponse)(nil), // 24: api_pb.SubscribeResponse - (*HaltsResponse)(nil), // 25: api_pb.HaltsResponse - (*GenesisResponse)(nil), // 26: api_pb.GenesisResponse - (*MinGasPriceResponse)(nil), // 27: api_pb.MinGasPriceResponse - (*NetInfoResponse)(nil), // 28: api_pb.NetInfoResponse - (*StatusResponse)(nil), // 29: api_pb.StatusResponse - (*AddressResponse)(nil), // 30: api_pb.AddressResponse - (*AddressesResponse)(nil), // 31: api_pb.AddressesResponse - (*BlockResponse)(nil), // 32: api_pb.BlockResponse - (*CandidateResponse)(nil), // 33: api_pb.CandidateResponse - (*CandidatesResponse)(nil), // 34: api_pb.CandidatesResponse - (*CoinInfoResponse)(nil), // 35: api_pb.CoinInfoResponse - (*EstimateCoinBuyResponse)(nil), // 36: api_pb.EstimateCoinBuyResponse - (*EstimateCoinSellResponse)(nil), // 37: api_pb.EstimateCoinSellResponse - (*EstimateCoinSellAllResponse)(nil), // 38: api_pb.EstimateCoinSellAllResponse - (*EstimateTxCommissionResponse)(nil), // 39: api_pb.EstimateTxCommissionResponse - (*EventsResponse)(nil), // 40: api_pb.EventsResponse - (*MaxGasPriceResponse)(nil), // 41: api_pb.MaxGasPriceResponse - (*MissedBlocksResponse)(nil), // 42: api_pb.MissedBlocksResponse - (*SendTransactionResponse)(nil), // 43: api_pb.SendTransactionResponse - (*TransactionResponse)(nil), // 44: api_pb.TransactionResponse - (*TransactionsResponse)(nil), // 45: api_pb.TransactionsResponse - (*UnconfirmedTxsResponse)(nil), // 46: api_pb.UnconfirmedTxsResponse - (*ValidatorsResponse)(nil), // 47: api_pb.ValidatorsResponse - (*FrozenResponse)(nil), // 48: api_pb.FrozenResponse - (*WaitListResponse)(nil), // 49: api_pb.WaitListResponse + (*SwapPoolRequest)(nil), // 24: api_pb.SwapPoolRequest + (*SwapPoolProviderRequest)(nil), // 25: api_pb.SwapPoolProviderRequest + (*PriceCommissionRequest)(nil), // 26: api_pb.PriceCommissionRequest + (*VersionNetworkRequest)(nil), // 27: api_pb.VersionNetworkRequest + (*CommissionVotesRequest)(nil), // 28: api_pb.CommissionVotesRequest + (*UpdateVotesRequest)(nil), // 29: api_pb.UpdateVotesRequest + (*BlocksRequest)(nil), // 30: api_pb.BlocksRequest + (*SubscribeResponse)(nil), // 31: api_pb.SubscribeResponse + (*HaltsResponse)(nil), // 32: api_pb.HaltsResponse + (*GenesisResponse)(nil), // 33: api_pb.GenesisResponse + (*MinGasPriceResponse)(nil), // 34: api_pb.MinGasPriceResponse + (*NetInfoResponse)(nil), // 35: api_pb.NetInfoResponse + (*StatusResponse)(nil), // 36: api_pb.StatusResponse + (*AddressResponse)(nil), // 37: api_pb.AddressResponse + (*AddressesResponse)(nil), // 38: api_pb.AddressesResponse + (*BlockResponse)(nil), // 39: api_pb.BlockResponse + (*CandidateResponse)(nil), // 40: api_pb.CandidateResponse + (*CandidatesResponse)(nil), // 41: api_pb.CandidatesResponse + (*CoinInfoResponse)(nil), // 42: api_pb.CoinInfoResponse + (*EstimateCoinBuyResponse)(nil), // 43: api_pb.EstimateCoinBuyResponse + (*EstimateCoinSellResponse)(nil), // 44: api_pb.EstimateCoinSellResponse + (*EstimateCoinSellAllResponse)(nil), // 45: api_pb.EstimateCoinSellAllResponse + (*EstimateTxCommissionResponse)(nil), // 46: api_pb.EstimateTxCommissionResponse + (*EventsResponse)(nil), // 47: api_pb.EventsResponse + (*MaxGasPriceResponse)(nil), // 48: api_pb.MaxGasPriceResponse + (*MissedBlocksResponse)(nil), // 49: api_pb.MissedBlocksResponse + (*SendTransactionResponse)(nil), // 50: api_pb.SendTransactionResponse + (*TransactionResponse)(nil), // 51: api_pb.TransactionResponse + (*TransactionsResponse)(nil), // 52: api_pb.TransactionsResponse + (*UnconfirmedTxsResponse)(nil), // 53: api_pb.UnconfirmedTxsResponse + (*ValidatorsResponse)(nil), // 54: api_pb.ValidatorsResponse + (*FrozenResponse)(nil), // 55: api_pb.FrozenResponse + (*WaitListResponse)(nil), // 56: api_pb.WaitListResponse + (*SwapPoolResponse)(nil), // 57: api_pb.SwapPoolResponse + (*PriceCommissionResponse)(nil), // 58: api_pb.PriceCommissionResponse + (*VersionNetworkResponse)(nil), // 59: api_pb.VersionNetworkResponse + (*CommissionVotesResponse)(nil), // 60: api_pb.CommissionVotesResponse + (*UpdateVotesResponse)(nil), // 61: api_pb.UpdateVotesResponse + (*BlocksResponse)(nil), // 62: api_pb.BlocksResponse } var file_api_proto_depIdxs = []int32{ 0, // 0: api_pb.ApiService.Subscribe:input_type -> api_pb.SubscribeRequest @@ -299,36 +385,50 @@ var file_api_proto_depIdxs = []int32{ 22, // 25: api_pb.ApiService.Frozen:input_type -> api_pb.FrozenRequest 23, // 26: api_pb.ApiService.WaitList:input_type -> api_pb.WaitListRequest 2, // 27: api_pb.ApiService.TestBlock:input_type -> google.protobuf.Empty - 24, // 28: api_pb.ApiService.Subscribe:output_type -> api_pb.SubscribeResponse - 25, // 29: api_pb.ApiService.Halts:output_type -> api_pb.HaltsResponse - 26, // 30: api_pb.ApiService.Genesis:output_type -> api_pb.GenesisResponse - 27, // 31: api_pb.ApiService.MinGasPrice:output_type -> api_pb.MinGasPriceResponse - 28, // 32: api_pb.ApiService.NetInfo:output_type -> api_pb.NetInfoResponse - 29, // 33: api_pb.ApiService.Status:output_type -> api_pb.StatusResponse - 30, // 34: api_pb.ApiService.Address:output_type -> api_pb.AddressResponse - 31, // 35: api_pb.ApiService.Addresses:output_type -> api_pb.AddressesResponse - 32, // 36: api_pb.ApiService.Block:output_type -> api_pb.BlockResponse - 33, // 37: api_pb.ApiService.Candidate:output_type -> api_pb.CandidateResponse - 34, // 38: api_pb.ApiService.Candidates:output_type -> api_pb.CandidatesResponse - 35, // 39: api_pb.ApiService.CoinInfoById:output_type -> api_pb.CoinInfoResponse - 35, // 40: api_pb.ApiService.CoinInfo:output_type -> api_pb.CoinInfoResponse - 36, // 41: api_pb.ApiService.EstimateCoinBuy:output_type -> api_pb.EstimateCoinBuyResponse - 37, // 42: api_pb.ApiService.EstimateCoinSell:output_type -> api_pb.EstimateCoinSellResponse - 38, // 43: api_pb.ApiService.EstimateCoinSellAll:output_type -> api_pb.EstimateCoinSellAllResponse - 39, // 44: api_pb.ApiService.EstimateTxCommission:output_type -> api_pb.EstimateTxCommissionResponse - 40, // 45: api_pb.ApiService.Events:output_type -> api_pb.EventsResponse - 41, // 46: api_pb.ApiService.MaxGasPrice:output_type -> api_pb.MaxGasPriceResponse - 42, // 47: api_pb.ApiService.MissedBlocks:output_type -> api_pb.MissedBlocksResponse - 43, // 48: api_pb.ApiService.SendTransaction:output_type -> api_pb.SendTransactionResponse - 44, // 49: api_pb.ApiService.Transaction:output_type -> api_pb.TransactionResponse - 45, // 50: api_pb.ApiService.Transactions:output_type -> api_pb.TransactionsResponse - 46, // 51: api_pb.ApiService.UnconfirmedTxs:output_type -> api_pb.UnconfirmedTxsResponse - 47, // 52: api_pb.ApiService.Validators:output_type -> api_pb.ValidatorsResponse - 48, // 53: api_pb.ApiService.Frozen:output_type -> api_pb.FrozenResponse - 49, // 54: api_pb.ApiService.WaitList:output_type -> api_pb.WaitListResponse - 32, // 55: api_pb.ApiService.TestBlock:output_type -> api_pb.BlockResponse - 28, // [28:56] is the sub-list for method output_type - 0, // [0:28] is the sub-list for method input_type + 24, // 28: api_pb.ApiService.SwapPool:input_type -> api_pb.SwapPoolRequest + 25, // 29: api_pb.ApiService.SwapPoolProvider:input_type -> api_pb.SwapPoolProviderRequest + 26, // 30: api_pb.ApiService.PriceCommission:input_type -> api_pb.PriceCommissionRequest + 27, // 31: api_pb.ApiService.VersionNetwork:input_type -> api_pb.VersionNetworkRequest + 28, // 32: api_pb.ApiService.CommissionVotes:input_type -> api_pb.CommissionVotesRequest + 29, // 33: api_pb.ApiService.UpdateVotes:input_type -> api_pb.UpdateVotesRequest + 30, // 34: api_pb.ApiService.Blocks:input_type -> api_pb.BlocksRequest + 31, // 35: api_pb.ApiService.Subscribe:output_type -> api_pb.SubscribeResponse + 32, // 36: api_pb.ApiService.Halts:output_type -> api_pb.HaltsResponse + 33, // 37: api_pb.ApiService.Genesis:output_type -> api_pb.GenesisResponse + 34, // 38: api_pb.ApiService.MinGasPrice:output_type -> api_pb.MinGasPriceResponse + 35, // 39: api_pb.ApiService.NetInfo:output_type -> api_pb.NetInfoResponse + 36, // 40: api_pb.ApiService.Status:output_type -> api_pb.StatusResponse + 37, // 41: api_pb.ApiService.Address:output_type -> api_pb.AddressResponse + 38, // 42: api_pb.ApiService.Addresses:output_type -> api_pb.AddressesResponse + 39, // 43: api_pb.ApiService.Block:output_type -> api_pb.BlockResponse + 40, // 44: api_pb.ApiService.Candidate:output_type -> api_pb.CandidateResponse + 41, // 45: api_pb.ApiService.Candidates:output_type -> api_pb.CandidatesResponse + 42, // 46: api_pb.ApiService.CoinInfoById:output_type -> api_pb.CoinInfoResponse + 42, // 47: api_pb.ApiService.CoinInfo:output_type -> api_pb.CoinInfoResponse + 43, // 48: api_pb.ApiService.EstimateCoinBuy:output_type -> api_pb.EstimateCoinBuyResponse + 44, // 49: api_pb.ApiService.EstimateCoinSell:output_type -> api_pb.EstimateCoinSellResponse + 45, // 50: api_pb.ApiService.EstimateCoinSellAll:output_type -> api_pb.EstimateCoinSellAllResponse + 46, // 51: api_pb.ApiService.EstimateTxCommission:output_type -> api_pb.EstimateTxCommissionResponse + 47, // 52: api_pb.ApiService.Events:output_type -> api_pb.EventsResponse + 48, // 53: api_pb.ApiService.MaxGasPrice:output_type -> api_pb.MaxGasPriceResponse + 49, // 54: api_pb.ApiService.MissedBlocks:output_type -> api_pb.MissedBlocksResponse + 50, // 55: api_pb.ApiService.SendTransaction:output_type -> api_pb.SendTransactionResponse + 51, // 56: api_pb.ApiService.Transaction:output_type -> api_pb.TransactionResponse + 52, // 57: api_pb.ApiService.Transactions:output_type -> api_pb.TransactionsResponse + 53, // 58: api_pb.ApiService.UnconfirmedTxs:output_type -> api_pb.UnconfirmedTxsResponse + 54, // 59: api_pb.ApiService.Validators:output_type -> api_pb.ValidatorsResponse + 55, // 60: api_pb.ApiService.Frozen:output_type -> api_pb.FrozenResponse + 56, // 61: api_pb.ApiService.WaitList:output_type -> api_pb.WaitListResponse + 39, // 62: api_pb.ApiService.TestBlock:output_type -> api_pb.BlockResponse + 57, // 63: api_pb.ApiService.SwapPool:output_type -> api_pb.SwapPoolResponse + 57, // 64: api_pb.ApiService.SwapPoolProvider:output_type -> api_pb.SwapPoolResponse + 58, // 65: api_pb.ApiService.PriceCommission:output_type -> api_pb.PriceCommissionResponse + 59, // 66: api_pb.ApiService.VersionNetwork:output_type -> api_pb.VersionNetworkResponse + 60, // 67: api_pb.ApiService.CommissionVotes:output_type -> api_pb.CommissionVotesResponse + 61, // 68: api_pb.ApiService.UpdateVotes:output_type -> api_pb.UpdateVotesResponse + 62, // 69: api_pb.ApiService.Blocks:output_type -> api_pb.BlocksResponse + 35, // [35:70] is the sub-list for method output_type + 0, // [0:35] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/api_pb/api.pb.gw.go b/api_pb/api.pb.gw.go index da94b5f..50f4a9c 100644 --- a/api_pb/api.pb.gw.go +++ b/api_pb/api.pb.gw.go @@ -1364,6 +1364,436 @@ func local_request_ApiService_TestBlock_0(ctx context.Context, marshaler runtime } +var ( + filter_ApiService_SwapPool_0 = &utilities.DoubleArray{Encoding: map[string]int{"coin0": 0, "coin1": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_ApiService_SwapPool_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SwapPoolRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["coin0"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin0") + } + + protoReq.Coin0, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin0", err) + } + + val, ok = pathParams["coin1"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin1") + } + + protoReq.Coin1, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin1", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_SwapPool_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SwapPool(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_SwapPool_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SwapPoolRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["coin0"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin0") + } + + protoReq.Coin0, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin0", err) + } + + val, ok = pathParams["coin1"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin1") + } + + protoReq.Coin1, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin1", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_SwapPool_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SwapPool(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_ApiService_SwapPoolProvider_0 = &utilities.DoubleArray{Encoding: map[string]int{"coin0": 0, "coin1": 1, "provider": 2}, Base: []int{1, 1, 2, 3, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4}} +) + +func request_ApiService_SwapPoolProvider_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SwapPoolProviderRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["coin0"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin0") + } + + protoReq.Coin0, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin0", err) + } + + val, ok = pathParams["coin1"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin1") + } + + protoReq.Coin1, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin1", err) + } + + val, ok = pathParams["provider"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "provider") + } + + protoReq.Provider, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "provider", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_SwapPoolProvider_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SwapPoolProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_SwapPoolProvider_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SwapPoolProviderRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["coin0"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin0") + } + + protoReq.Coin0, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin0", err) + } + + val, ok = pathParams["coin1"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "coin1") + } + + protoReq.Coin1, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "coin1", err) + } + + val, ok = pathParams["provider"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "provider") + } + + protoReq.Provider, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "provider", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_SwapPoolProvider_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SwapPoolProvider(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_ApiService_PriceCommission_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_ApiService_PriceCommission_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PriceCommissionRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_PriceCommission_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PriceCommission(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_PriceCommission_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PriceCommissionRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_PriceCommission_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PriceCommission(ctx, &protoReq) + return msg, metadata, err + +} + +func request_ApiService_VersionNetwork_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq VersionNetworkRequest + var metadata runtime.ServerMetadata + + msg, err := client.VersionNetwork(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_VersionNetwork_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq VersionNetworkRequest + var metadata runtime.ServerMetadata + + msg, err := server.VersionNetwork(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_ApiService_CommissionVotes_0 = &utilities.DoubleArray{Encoding: map[string]int{"target_version": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_ApiService_CommissionVotes_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CommissionVotesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["target_version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "target_version") + } + + protoReq.TargetVersion, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "target_version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_CommissionVotes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CommissionVotes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_CommissionVotes_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CommissionVotesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["target_version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "target_version") + } + + protoReq.TargetVersion, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "target_version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_CommissionVotes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CommissionVotes(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_ApiService_UpdateVotes_0 = &utilities.DoubleArray{Encoding: map[string]int{"target_version": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_ApiService_UpdateVotes_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVotesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["target_version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "target_version") + } + + protoReq.TargetVersion, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "target_version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_UpdateVotes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateVotes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_UpdateVotes_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVotesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["target_version"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "target_version") + } + + protoReq.TargetVersion, err = runtime.Uint64(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "target_version", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_UpdateVotes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateVotes(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_ApiService_Blocks_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_ApiService_Blocks_0(ctx context.Context, marshaler runtime.Marshaler, client ApiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BlocksRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_Blocks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.Blocks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ApiService_Blocks_0(ctx context.Context, marshaler runtime.Marshaler, server ApiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BlocksRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ApiService_Blocks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.Blocks(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterApiServiceHandlerServer registers the http handlers for service ApiService to "mux". // UnaryRPC :call ApiServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -1567,12 +1997,173 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Candidate") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Candidate") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_Candidate_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_Candidate_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_Candidates_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Candidates") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_Candidates_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_Candidates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_CoinInfoById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/CoinInfoById") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_CoinInfoById_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_CoinInfoById_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_CoinInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/CoinInfo") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_CoinInfo_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_CoinInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_EstimateCoinBuy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateCoinBuy") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_EstimateCoinBuy_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_EstimateCoinBuy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_EstimateCoinSell_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateCoinSell") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_EstimateCoinSell_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_EstimateCoinSell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_EstimateCoinSellAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateCoinSellAll") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ApiService_EstimateCoinSellAll_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_EstimateCoinSellAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_EstimateTxCommission_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateTxCommission") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Candidate_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_EstimateTxCommission_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1580,22 +2171,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Candidate_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_EstimateTxCommission_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_Candidates_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_Events_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Candidates") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Events") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Candidates_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_Events_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1603,22 +2194,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Candidates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_Events_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_CoinInfoById_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_MaxGasPrice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/CoinInfoById") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/MaxGasPrice") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_CoinInfoById_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_MaxGasPrice_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1626,22 +2217,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_CoinInfoById_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_MaxGasPrice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_CoinInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_MissedBlocks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/CoinInfo") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/MissedBlocks") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_CoinInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_MissedBlocks_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1649,22 +2240,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_CoinInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_MissedBlocks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_EstimateCoinBuy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_SendTransaction_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateCoinBuy") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/SendTransaction") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_EstimateCoinBuy_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_SendTransaction_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1672,22 +2263,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_EstimateCoinBuy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_SendTransaction_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_EstimateCoinSell_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_ApiService_SendTransaction_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateCoinSell") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/SendTransaction") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_EstimateCoinSell_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_SendTransaction_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1695,22 +2286,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_EstimateCoinSell_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_SendTransaction_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_EstimateCoinSellAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_Transaction_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateCoinSellAll") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Transaction") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_EstimateCoinSellAll_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_Transaction_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1718,22 +2309,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_EstimateCoinSellAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_Transaction_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_EstimateTxCommission_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_Transactions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/EstimateTxCommission") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Transactions") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_EstimateTxCommission_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_Transactions_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1741,22 +2332,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_EstimateTxCommission_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_Transactions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_Events_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_UnconfirmedTxs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Events") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/UnconfirmedTxs") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Events_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_UnconfirmedTxs_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1764,22 +2355,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Events_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_UnconfirmedTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_MaxGasPrice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_Validators_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/MaxGasPrice") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Validators") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_MaxGasPrice_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_Validators_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1787,22 +2378,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_MaxGasPrice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_Validators_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_MissedBlocks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_Frozen_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/MissedBlocks") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Frozen") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_MissedBlocks_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_Frozen_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1810,22 +2401,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_MissedBlocks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_Frozen_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_SendTransaction_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_WaitList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/SendTransaction") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/WaitList") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_SendTransaction_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_WaitList_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1833,22 +2424,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_SendTransaction_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_WaitList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_ApiService_SendTransaction_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_TestBlock_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/SendTransaction") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/TestBlock") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_SendTransaction_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_TestBlock_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1856,22 +2447,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_SendTransaction_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_TestBlock_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_Transaction_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_SwapPool_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Transaction") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/SwapPool") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Transaction_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_SwapPool_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1879,22 +2470,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Transaction_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_SwapPool_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_Transactions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_SwapPoolProvider_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Transactions") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/SwapPoolProvider") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Transactions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_SwapPoolProvider_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1902,22 +2493,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Transactions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_SwapPoolProvider_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_UnconfirmedTxs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_PriceCommission_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/UnconfirmedTxs") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/PriceCommission") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_UnconfirmedTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_PriceCommission_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1925,22 +2516,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_UnconfirmedTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_PriceCommission_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_Validators_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_VersionNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Validators") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/VersionNetwork") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Validators_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_VersionNetwork_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1948,22 +2539,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Validators_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_VersionNetwork_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_Frozen_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_CommissionVotes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Frozen") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/CommissionVotes") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_Frozen_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_CommissionVotes_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1971,22 +2562,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_Frozen_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_CommissionVotes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_WaitList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_UpdateVotes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/WaitList") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/UpdateVotes") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_WaitList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_UpdateVotes_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1994,22 +2585,22 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_WaitList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_UpdateVotes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_ApiService_TestBlock_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_ApiService_Blocks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/TestBlock") + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/api_pb.ApiService/Blocks") if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_ApiService_TestBlock_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_ApiService_Blocks_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -2017,7 +2608,7 @@ func RegisterApiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_ApiService_TestBlock_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_ApiService_Blocks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2642,6 +3233,146 @@ func RegisterApiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, }) + mux.Handle("GET", pattern_ApiService_SwapPool_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/SwapPool") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_SwapPool_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_SwapPool_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_SwapPoolProvider_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/SwapPoolProvider") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_SwapPoolProvider_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_SwapPoolProvider_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_PriceCommission_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/PriceCommission") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_PriceCommission_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_PriceCommission_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_VersionNetwork_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/VersionNetwork") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_VersionNetwork_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_VersionNetwork_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_CommissionVotes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/CommissionVotes") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_CommissionVotes_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_CommissionVotes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_UpdateVotes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/UpdateVotes") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_UpdateVotes_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_UpdateVotes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_ApiService_Blocks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/api_pb.ApiService/Blocks") + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ApiService_Blocks_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ApiService_Blocks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -2703,6 +3434,20 @@ var ( pattern_ApiService_WaitList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"waitlist", "address"}, "")) pattern_ApiService_TestBlock_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"test", "block"}, "")) + + pattern_ApiService_SwapPool_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 1, 0, 4, 1, 5, 2}, []string{"swap_pool", "coin0", "coin1"}, "")) + + pattern_ApiService_SwapPoolProvider_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3}, []string{"swap_pool", "coin0", "coin1", "provider"}, "")) + + pattern_ApiService_PriceCommission_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"price_commissions"}, "")) + + pattern_ApiService_VersionNetwork_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"version_network"}, "")) + + pattern_ApiService_CommissionVotes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"commission_votes", "target_version"}, "")) + + pattern_ApiService_UpdateVotes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 1, 0, 4, 1, 5, 1}, []string{"update_votes", "target_version"}, "")) + + pattern_ApiService_Blocks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"blocks"}, "")) ) var ( @@ -2763,4 +3508,18 @@ var ( forward_ApiService_WaitList_0 = runtime.ForwardResponseMessage forward_ApiService_TestBlock_0 = runtime.ForwardResponseMessage + + forward_ApiService_SwapPool_0 = runtime.ForwardResponseMessage + + forward_ApiService_SwapPoolProvider_0 = runtime.ForwardResponseMessage + + forward_ApiService_PriceCommission_0 = runtime.ForwardResponseMessage + + forward_ApiService_VersionNetwork_0 = runtime.ForwardResponseMessage + + forward_ApiService_CommissionVotes_0 = runtime.ForwardResponseMessage + + forward_ApiService_UpdateVotes_0 = runtime.ForwardResponseMessage + + forward_ApiService_Blocks_0 = runtime.ForwardResponseMessage ) diff --git a/api_pb/api_grpc.pb.go b/api_pb/api_grpc.pb.go index b6b348c..e217ead 100644 --- a/api_pb/api_grpc.pb.go +++ b/api_pb/api_grpc.pb.go @@ -133,6 +133,34 @@ type ApiServiceClient interface { // // TestBlock returns the list of example transactions in block. Available only testnet mode. TestBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*BlockResponse, error) + // SwapPool + // + // + SwapPool(ctx context.Context, in *SwapPoolRequest, opts ...grpc.CallOption) (*SwapPoolResponse, error) + // SwapPoolProvider + // + // + SwapPoolProvider(ctx context.Context, in *SwapPoolProviderRequest, opts ...grpc.CallOption) (*SwapPoolResponse, error) + // PriceCommission + // + // + PriceCommission(ctx context.Context, in *PriceCommissionRequest, opts ...grpc.CallOption) (*PriceCommissionResponse, error) + // VersionNetwork + // + // + VersionNetwork(ctx context.Context, in *VersionNetworkRequest, opts ...grpc.CallOption) (*VersionNetworkResponse, error) + // CommissionVotes + // + // + CommissionVotes(ctx context.Context, in *CommissionVotesRequest, opts ...grpc.CallOption) (*CommissionVotesResponse, error) + // UpdateVotes + // + // + UpdateVotes(ctx context.Context, in *UpdateVotesRequest, opts ...grpc.CallOption) (*UpdateVotesResponse, error) + // Blocks + // + // + Blocks(ctx context.Context, in *BlocksRequest, opts ...grpc.CallOption) (*BlocksResponse, error) } type apiServiceClient struct { @@ -418,6 +446,69 @@ func (c *apiServiceClient) TestBlock(ctx context.Context, in *emptypb.Empty, opt return out, nil } +func (c *apiServiceClient) SwapPool(ctx context.Context, in *SwapPoolRequest, opts ...grpc.CallOption) (*SwapPoolResponse, error) { + out := new(SwapPoolResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/SwapPool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *apiServiceClient) SwapPoolProvider(ctx context.Context, in *SwapPoolProviderRequest, opts ...grpc.CallOption) (*SwapPoolResponse, error) { + out := new(SwapPoolResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/SwapPoolProvider", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *apiServiceClient) PriceCommission(ctx context.Context, in *PriceCommissionRequest, opts ...grpc.CallOption) (*PriceCommissionResponse, error) { + out := new(PriceCommissionResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/PriceCommission", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *apiServiceClient) VersionNetwork(ctx context.Context, in *VersionNetworkRequest, opts ...grpc.CallOption) (*VersionNetworkResponse, error) { + out := new(VersionNetworkResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/VersionNetwork", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *apiServiceClient) CommissionVotes(ctx context.Context, in *CommissionVotesRequest, opts ...grpc.CallOption) (*CommissionVotesResponse, error) { + out := new(CommissionVotesResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/CommissionVotes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *apiServiceClient) UpdateVotes(ctx context.Context, in *UpdateVotesRequest, opts ...grpc.CallOption) (*UpdateVotesResponse, error) { + out := new(UpdateVotesResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/UpdateVotes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *apiServiceClient) Blocks(ctx context.Context, in *BlocksRequest, opts ...grpc.CallOption) (*BlocksResponse, error) { + out := new(BlocksResponse) + err := c.cc.Invoke(ctx, "/api_pb.ApiService/Blocks", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ApiServiceServer is the server API for ApiService service. // All implementations must embed UnimplementedApiServiceServer // for forward compatibility @@ -537,6 +628,34 @@ type ApiServiceServer interface { // // TestBlock returns the list of example transactions in block. Available only testnet mode. TestBlock(context.Context, *emptypb.Empty) (*BlockResponse, error) + // SwapPool + // + // + SwapPool(context.Context, *SwapPoolRequest) (*SwapPoolResponse, error) + // SwapPoolProvider + // + // + SwapPoolProvider(context.Context, *SwapPoolProviderRequest) (*SwapPoolResponse, error) + // PriceCommission + // + // + PriceCommission(context.Context, *PriceCommissionRequest) (*PriceCommissionResponse, error) + // VersionNetwork + // + // + VersionNetwork(context.Context, *VersionNetworkRequest) (*VersionNetworkResponse, error) + // CommissionVotes + // + // + CommissionVotes(context.Context, *CommissionVotesRequest) (*CommissionVotesResponse, error) + // UpdateVotes + // + // + UpdateVotes(context.Context, *UpdateVotesRequest) (*UpdateVotesResponse, error) + // Blocks + // + // + Blocks(context.Context, *BlocksRequest) (*BlocksResponse, error) mustEmbedUnimplementedApiServiceServer() } @@ -628,6 +747,27 @@ func (UnimplementedApiServiceServer) WaitList(context.Context, *WaitListRequest) func (UnimplementedApiServiceServer) TestBlock(context.Context, *emptypb.Empty) (*BlockResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method TestBlock not implemented") } +func (UnimplementedApiServiceServer) SwapPool(context.Context, *SwapPoolRequest) (*SwapPoolResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SwapPool not implemented") +} +func (UnimplementedApiServiceServer) SwapPoolProvider(context.Context, *SwapPoolProviderRequest) (*SwapPoolResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SwapPoolProvider not implemented") +} +func (UnimplementedApiServiceServer) PriceCommission(context.Context, *PriceCommissionRequest) (*PriceCommissionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PriceCommission not implemented") +} +func (UnimplementedApiServiceServer) VersionNetwork(context.Context, *VersionNetworkRequest) (*VersionNetworkResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method VersionNetwork not implemented") +} +func (UnimplementedApiServiceServer) CommissionVotes(context.Context, *CommissionVotesRequest) (*CommissionVotesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CommissionVotes not implemented") +} +func (UnimplementedApiServiceServer) UpdateVotes(context.Context, *UpdateVotesRequest) (*UpdateVotesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateVotes not implemented") +} +func (UnimplementedApiServiceServer) Blocks(context.Context, *BlocksRequest) (*BlocksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Blocks not implemented") +} func (UnimplementedApiServiceServer) mustEmbedUnimplementedApiServiceServer() {} // UnsafeApiServiceServer may be embedded to opt out of forward compatibility for this service. @@ -1148,6 +1288,132 @@ func _ApiService_TestBlock_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _ApiService_SwapPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SwapPoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).SwapPool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/SwapPool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).SwapPool(ctx, req.(*SwapPoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ApiService_SwapPoolProvider_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SwapPoolProviderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).SwapPoolProvider(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/SwapPoolProvider", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).SwapPoolProvider(ctx, req.(*SwapPoolProviderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ApiService_PriceCommission_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PriceCommissionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).PriceCommission(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/PriceCommission", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).PriceCommission(ctx, req.(*PriceCommissionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ApiService_VersionNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VersionNetworkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).VersionNetwork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/VersionNetwork", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).VersionNetwork(ctx, req.(*VersionNetworkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ApiService_CommissionVotes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CommissionVotesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).CommissionVotes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/CommissionVotes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).CommissionVotes(ctx, req.(*CommissionVotesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ApiService_UpdateVotes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateVotesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).UpdateVotes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/UpdateVotes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).UpdateVotes(ctx, req.(*UpdateVotesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ApiService_Blocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BlocksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ApiServiceServer).Blocks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api_pb.ApiService/Blocks", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ApiServiceServer).Blocks(ctx, req.(*BlocksRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ApiService_serviceDesc = grpc.ServiceDesc{ ServiceName: "api_pb.ApiService", HandlerType: (*ApiServiceServer)(nil), @@ -1260,6 +1526,34 @@ var _ApiService_serviceDesc = grpc.ServiceDesc{ MethodName: "TestBlock", Handler: _ApiService_TestBlock_Handler, }, + { + MethodName: "SwapPool", + Handler: _ApiService_SwapPool_Handler, + }, + { + MethodName: "SwapPoolProvider", + Handler: _ApiService_SwapPoolProvider_Handler, + }, + { + MethodName: "PriceCommission", + Handler: _ApiService_PriceCommission_Handler, + }, + { + MethodName: "VersionNetwork", + Handler: _ApiService_VersionNetwork_Handler, + }, + { + MethodName: "CommissionVotes", + Handler: _ApiService_CommissionVotes_Handler, + }, + { + MethodName: "UpdateVotes", + Handler: _ApiService_UpdateVotes_Handler, + }, + { + MethodName: "Blocks", + Handler: _ApiService_Blocks_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/api_pb/resources.pb.go b/api_pb/resources.pb.go index e609eb0..0c382d0 100644 --- a/api_pb/resources.pb.go +++ b/api_pb/resources.pb.go @@ -29,21 +29,21 @@ const ( // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 -type BlockRequest_Field int32 +type BlockField int32 const ( - BlockRequest_transactions BlockRequest_Field = 0 - BlockRequest_missed BlockRequest_Field = 1 - BlockRequest_block_reward BlockRequest_Field = 2 - BlockRequest_size BlockRequest_Field = 3 - BlockRequest_proposer BlockRequest_Field = 4 - BlockRequest_validators BlockRequest_Field = 5 - BlockRequest_evidence BlockRequest_Field = 6 + BlockField_transactions BlockField = 0 + BlockField_missed BlockField = 1 + BlockField_block_reward BlockField = 2 + BlockField_size BlockField = 3 + BlockField_proposer BlockField = 4 + BlockField_validators BlockField = 5 + BlockField_evidence BlockField = 6 ) -// Enum value maps for BlockRequest_Field. +// Enum value maps for BlockField. var ( - BlockRequest_Field_name = map[int32]string{ + BlockField_name = map[int32]string{ 0: "transactions", 1: "missed", 2: "block_reward", @@ -52,7 +52,7 @@ var ( 5: "validators", 6: "evidence", } - BlockRequest_Field_value = map[string]int32{ + BlockField_value = map[string]int32{ "transactions": 0, "missed": 1, "block_reward": 2, @@ -63,39 +63,89 @@ var ( } ) -func (x BlockRequest_Field) Enum() *BlockRequest_Field { - p := new(BlockRequest_Field) +func (x BlockField) Enum() *BlockField { + p := new(BlockField) *p = x return p } -func (x BlockRequest_Field) String() string { +func (x BlockField) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (BlockRequest_Field) Descriptor() protoreflect.EnumDescriptor { +func (BlockField) Descriptor() protoreflect.EnumDescriptor { return file_resources_proto_enumTypes[0].Descriptor() } -func (BlockRequest_Field) Type() protoreflect.EnumType { +func (BlockField) Type() protoreflect.EnumType { return &file_resources_proto_enumTypes[0] } -func (x BlockRequest_Field) Number() protoreflect.EnumNumber { +func (x BlockField) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use BlockRequest_Field.Descriptor instead. -func (BlockRequest_Field) EnumDescriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{6, 0} +// Deprecated: Use BlockField.Descriptor instead. +func (BlockField) EnumDescriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{0} +} + +type SwapFrom int32 + +const ( + SwapFrom_optimal SwapFrom = 0 + SwapFrom_bancor SwapFrom = 1 + SwapFrom_pool SwapFrom = 2 +) + +// Enum value maps for SwapFrom. +var ( + SwapFrom_name = map[int32]string{ + 0: "optimal", + 1: "bancor", + 2: "pool", + } + SwapFrom_value = map[string]int32{ + "optimal": 0, + "bancor": 1, + "pool": 2, + } +) + +func (x SwapFrom) Enum() *SwapFrom { + p := new(SwapFrom) + *p = x + return p +} + +func (x SwapFrom) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SwapFrom) Descriptor() protoreflect.EnumDescriptor { + return file_resources_proto_enumTypes[1].Descriptor() +} + +func (SwapFrom) Type() protoreflect.EnumType { + return &file_resources_proto_enumTypes[1] +} + +func (x SwapFrom) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SwapFrom.Descriptor instead. +func (SwapFrom) EnumDescriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{1} } type CandidatesRequest_CandidateStatus int32 const ( - CandidatesRequest_all CandidatesRequest_CandidateStatus = 0 - CandidatesRequest_off CandidatesRequest_CandidateStatus = 1 - CandidatesRequest_on CandidatesRequest_CandidateStatus = 2 + CandidatesRequest_all CandidatesRequest_CandidateStatus = 0 + CandidatesRequest_off CandidatesRequest_CandidateStatus = 1 + CandidatesRequest_on CandidatesRequest_CandidateStatus = 2 + CandidatesRequest_validator CandidatesRequest_CandidateStatus = 3 ) // Enum value maps for CandidatesRequest_CandidateStatus. @@ -104,11 +154,13 @@ var ( 0: "all", 1: "off", 2: "on", + 3: "validator", } CandidatesRequest_CandidateStatus_value = map[string]int32{ - "all": 0, - "off": 1, - "on": 2, + "all": 0, + "off": 1, + "on": 2, + "validator": 3, } ) @@ -123,11 +175,11 @@ func (x CandidatesRequest_CandidateStatus) String() string { } func (CandidatesRequest_CandidateStatus) Descriptor() protoreflect.EnumDescriptor { - return file_resources_proto_enumTypes[1].Descriptor() + return file_resources_proto_enumTypes[2].Descriptor() } func (CandidatesRequest_CandidateStatus) Type() protoreflect.EnumType { - return &file_resources_proto_enumTypes[1] + return &file_resources_proto_enumTypes[2] } func (x CandidatesRequest_CandidateStatus) Number() protoreflect.EnumNumber { @@ -136,7 +188,7 @@ func (x CandidatesRequest_CandidateStatus) Number() protoreflect.EnumNumber { // Deprecated: Use CandidatesRequest_CandidateStatus.Descriptor instead. func (CandidatesRequest_CandidateStatus) EnumDescriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{18, 0} + return file_resources_proto_rawDescGZIP(), []int{31, 0} } type Coin struct { @@ -194,23 +246,19 @@ func (x *Coin) GetSymbol() string { return "" } -type NodeInfo struct { +type BlocksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ProtocolVersion *NodeInfo_ProtocolVersion `protobuf:"bytes,8,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ListenAddr string `protobuf:"bytes,2,opt,name=listen_addr,json=listenAddr,proto3" json:"listen_addr,omitempty"` - Network string `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty"` - Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` - Channels string `protobuf:"bytes,5,opt,name=channels,proto3" json:"channels,omitempty"` - Moniker string `protobuf:"bytes,6,opt,name=moniker,proto3" json:"moniker,omitempty"` - Other *NodeInfo_Other `protobuf:"bytes,7,opt,name=other,proto3" json:"other,omitempty"` + FromHeight uint64 `protobuf:"varint,1,opt,name=from_height,json=fromHeight,proto3" json:"from_height,omitempty"` + ToHeight uint64 `protobuf:"varint,2,opt,name=to_height,json=toHeight,proto3" json:"to_height,omitempty"` + Fields []BlockField `protobuf:"varint,3,rep,packed,name=fields,proto3,enum=api_pb.BlockField" json:"fields,omitempty"` + FailedTxs bool `protobuf:"varint,4,opt,name=failed_txs,json=failedTxs,proto3" json:"failed_txs,omitempty"` } -func (x *NodeInfo) Reset() { - *x = NodeInfo{} +func (x *BlocksRequest) Reset() { + *x = BlocksRequest{} if protoimpl.UnsafeEnabled { mi := &file_resources_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -218,13 +266,13 @@ func (x *NodeInfo) Reset() { } } -func (x *NodeInfo) String() string { +func (x *BlocksRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo) ProtoMessage() {} +func (*BlocksRequest) ProtoMessage() {} -func (x *NodeInfo) ProtoReflect() protoreflect.Message { +func (x *BlocksRequest) ProtoReflect() protoreflect.Message { mi := &file_resources_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -236,80 +284,49 @@ func (x *NodeInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. -func (*NodeInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use BlocksRequest.ProtoReflect.Descriptor instead. +func (*BlocksRequest) Descriptor() ([]byte, []int) { return file_resources_proto_rawDescGZIP(), []int{1} } -func (x *NodeInfo) GetProtocolVersion() *NodeInfo_ProtocolVersion { - if x != nil { - return x.ProtocolVersion - } - return nil -} - -func (x *NodeInfo) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *NodeInfo) GetListenAddr() string { - if x != nil { - return x.ListenAddr - } - return "" -} - -func (x *NodeInfo) GetNetwork() string { - if x != nil { - return x.Network - } - return "" -} - -func (x *NodeInfo) GetVersion() string { +func (x *BlocksRequest) GetFromHeight() uint64 { if x != nil { - return x.Version + return x.FromHeight } - return "" + return 0 } -func (x *NodeInfo) GetChannels() string { +func (x *BlocksRequest) GetToHeight() uint64 { if x != nil { - return x.Channels + return x.ToHeight } - return "" + return 0 } -func (x *NodeInfo) GetMoniker() string { +func (x *BlocksRequest) GetFields() []BlockField { if x != nil { - return x.Moniker + return x.Fields } - return "" + return nil } -func (x *NodeInfo) GetOther() *NodeInfo_Other { +func (x *BlocksRequest) GetFailedTxs() bool { if x != nil { - return x.Other + return x.FailedTxs } - return nil + return false } -type NetInfoResponse struct { +type BlocksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Listening bool `protobuf:"varint,4,opt,name=listening,proto3" json:"listening,omitempty"` - Listeners []string `protobuf:"bytes,1,rep,name=listeners,proto3" json:"listeners,omitempty"` - CountPeers int64 `protobuf:"varint,2,opt,name=count_peers,json=countPeers,proto3" json:"count_peers,omitempty"` - Peers []*NetInfoResponse_Peer `protobuf:"bytes,3,rep,name=peers,proto3" json:"peers,omitempty"` + Blocks []*BlockResponse `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"` } -func (x *NetInfoResponse) Reset() { - *x = NetInfoResponse{} +func (x *BlocksResponse) Reset() { + *x = BlocksResponse{} if protoimpl.UnsafeEnabled { mi := &file_resources_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -317,13 +334,13 @@ func (x *NetInfoResponse) Reset() { } } -func (x *NetInfoResponse) String() string { +func (x *BlocksResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NetInfoResponse) ProtoMessage() {} +func (*BlocksResponse) ProtoMessage() {} -func (x *NetInfoResponse) ProtoReflect() protoreflect.Message { +func (x *BlocksResponse) ProtoReflect() protoreflect.Message { mi := &file_resources_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -335,59 +352,29 @@ func (x *NetInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NetInfoResponse.ProtoReflect.Descriptor instead. -func (*NetInfoResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use BlocksResponse.ProtoReflect.Descriptor instead. +func (*BlocksResponse) Descriptor() ([]byte, []int) { return file_resources_proto_rawDescGZIP(), []int{2} } -func (x *NetInfoResponse) GetListening() bool { - if x != nil { - return x.Listening - } - return false -} - -func (x *NetInfoResponse) GetListeners() []string { - if x != nil { - return x.Listeners - } - return nil -} - -func (x *NetInfoResponse) GetCountPeers() int64 { +func (x *BlocksResponse) GetBlocks() []*BlockResponse { if x != nil { - return x.CountPeers - } - return 0 -} - -func (x *NetInfoResponse) GetPeers() []*NetInfoResponse_Peer { - if x != nil { - return x.Peers + return x.Blocks } return nil } -type StatusResponse struct { +type CommissionVotesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version string `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` - Network string `protobuf:"bytes,11,opt,name=network,proto3" json:"network,omitempty"` - LatestBlockHash string `protobuf:"bytes,1,opt,name=latest_block_hash,json=latestBlockHash,proto3" json:"latest_block_hash,omitempty"` - LatestAppHash string `protobuf:"bytes,2,opt,name=latest_app_hash,json=latestAppHash,proto3" json:"latest_app_hash,omitempty"` - LatestBlockHeight uint64 `protobuf:"varint,3,opt,name=latest_block_height,json=latestBlockHeight,proto3" json:"latest_block_height,omitempty"` - LatestBlockTime string `protobuf:"bytes,4,opt,name=latest_block_time,json=latestBlockTime,proto3" json:"latest_block_time,omitempty"` - KeepLastStates uint64 `protobuf:"varint,5,opt,name=keep_last_states,json=keepLastStates,proto3" json:"keep_last_states,omitempty"` - TotalSlashed string `protobuf:"bytes,10,opt,name=total_slashed,json=totalSlashed,proto3" json:"total_slashed,omitempty"` - CatchingUp bool `protobuf:"varint,6,opt,name=catching_up,json=catchingUp,proto3" json:"catching_up,omitempty"` - PublicKey string `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - NodeId string `protobuf:"bytes,9,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + TargetVersion uint64 `protobuf:"varint,1,opt,name=target_version,json=targetVersion,proto3" json:"target_version,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } -func (x *StatusResponse) Reset() { - *x = StatusResponse{} +func (x *CommissionVotesRequest) Reset() { + *x = CommissionVotesRequest{} if protoimpl.UnsafeEnabled { mi := &file_resources_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -395,13 +382,13 @@ func (x *StatusResponse) Reset() { } } -func (x *StatusResponse) String() string { +func (x *CommissionVotesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatusResponse) ProtoMessage() {} +func (*CommissionVotesRequest) ProtoMessage() {} -func (x *StatusResponse) ProtoReflect() protoreflect.Message { +func (x *CommissionVotesRequest) ProtoReflect() protoreflect.Message { mi := &file_resources_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -413,117 +400,98 @@ func (x *StatusResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. -func (*StatusResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CommissionVotesRequest.ProtoReflect.Descriptor instead. +func (*CommissionVotesRequest) Descriptor() ([]byte, []int) { return file_resources_proto_rawDescGZIP(), []int{3} } -func (x *StatusResponse) GetVersion() string { - if x != nil { - return x.Version - } - return "" -} - -func (x *StatusResponse) GetNetwork() string { +func (x *CommissionVotesRequest) GetTargetVersion() uint64 { if x != nil { - return x.Network + return x.TargetVersion } - return "" + return 0 } -func (x *StatusResponse) GetLatestBlockHash() string { +func (x *CommissionVotesRequest) GetHeight() uint64 { if x != nil { - return x.LatestBlockHash + return x.Height } - return "" + return 0 } -func (x *StatusResponse) GetLatestAppHash() string { - if x != nil { - return x.LatestAppHash - } - return "" -} +type CommissionVotesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *StatusResponse) GetLatestBlockHeight() uint64 { - if x != nil { - return x.LatestBlockHeight - } - return 0 + Votes []*CommissionVotesResponse_Vote `protobuf:"bytes,1,rep,name=votes,proto3" json:"votes,omitempty"` } -func (x *StatusResponse) GetLatestBlockTime() string { - if x != nil { - return x.LatestBlockTime +func (x *CommissionVotesResponse) Reset() { + *x = CommissionVotesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *StatusResponse) GetKeepLastStates() uint64 { - if x != nil { - return x.KeepLastStates - } - return 0 +func (x *CommissionVotesResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *StatusResponse) GetTotalSlashed() string { - if x != nil { - return x.TotalSlashed - } - return "" -} +func (*CommissionVotesResponse) ProtoMessage() {} -func (x *StatusResponse) GetCatchingUp() bool { - if x != nil { - return x.CatchingUp +func (x *CommissionVotesResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *StatusResponse) GetPublicKey() string { - if x != nil { - return x.PublicKey - } - return "" +// Deprecated: Use CommissionVotesResponse.ProtoReflect.Descriptor instead. +func (*CommissionVotesResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{4} } -func (x *StatusResponse) GetNodeId() string { +func (x *CommissionVotesResponse) GetVotes() []*CommissionVotesResponse_Vote { if x != nil { - return x.NodeId + return x.Votes } - return "" + return nil } -type GenesisResponse struct { +type UpdateVotesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GenesisTime string `protobuf:"bytes,1,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - ConsensusParams *GenesisResponse_ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` - AppHash string `protobuf:"bytes,4,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` - AppState *GenesisResponse_AppState `protobuf:"bytes,5,opt,name=app_state,json=appState,proto3" json:"app_state,omitempty"` + TargetVersion uint64 `protobuf:"varint,1,opt,name=target_version,json=targetVersion,proto3" json:"target_version,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } -func (x *GenesisResponse) Reset() { - *x = GenesisResponse{} +func (x *UpdateVotesRequest) Reset() { + *x = UpdateVotesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[4] + mi := &file_resources_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse) String() string { +func (x *UpdateVotesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse) ProtoMessage() {} +func (*UpdateVotesRequest) ProtoMessage() {} -func (x *GenesisResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[4] +func (x *UpdateVotesRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -534,71 +502,50 @@ func (x *GenesisResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse.ProtoReflect.Descriptor instead. -func (*GenesisResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4} +// Deprecated: Use UpdateVotesRequest.ProtoReflect.Descriptor instead. +func (*UpdateVotesRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{5} } -func (x *GenesisResponse) GetGenesisTime() string { +func (x *UpdateVotesRequest) GetTargetVersion() uint64 { if x != nil { - return x.GenesisTime + return x.TargetVersion } - return "" + return 0 } -func (x *GenesisResponse) GetChainId() string { +func (x *UpdateVotesRequest) GetHeight() uint64 { if x != nil { - return x.ChainId + return x.Height } - return "" + return 0 } -func (x *GenesisResponse) GetConsensusParams() *GenesisResponse_ConsensusParams { - if x != nil { - return x.ConsensusParams - } - return nil +type UpdateVotesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Votes []*UpdateVotesResponse_Vote `protobuf:"bytes,1,rep,name=votes,proto3" json:"votes,omitempty"` } -func (x *GenesisResponse) GetAppHash() string { - if x != nil { - return x.AppHash - } - return "" -} - -func (x *GenesisResponse) GetAppState() *GenesisResponse_AppState { - if x != nil { - return x.AppState - } - return nil -} - -type MinGasPriceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MinGasPrice uint64 `protobuf:"varint,3,opt,name=min_gas_price,json=minGasPrice,proto3" json:"min_gas_price,omitempty"` -} - -func (x *MinGasPriceResponse) Reset() { - *x = MinGasPriceResponse{} +func (x *UpdateVotesResponse) Reset() { + *x = UpdateVotesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[5] + mi := &file_resources_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MinGasPriceResponse) String() string { +func (x *UpdateVotesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MinGasPriceResponse) ProtoMessage() {} +func (*UpdateVotesResponse) ProtoMessage() {} -func (x *MinGasPriceResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[5] +func (x *UpdateVotesResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -609,44 +556,41 @@ func (x *MinGasPriceResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MinGasPriceResponse.ProtoReflect.Descriptor instead. -func (*MinGasPriceResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{5} +// Deprecated: Use UpdateVotesResponse.ProtoReflect.Descriptor instead. +func (*UpdateVotesResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{6} } -func (x *MinGasPriceResponse) GetMinGasPrice() uint64 { +func (x *UpdateVotesResponse) GetVotes() []*UpdateVotesResponse_Vote { if x != nil { - return x.MinGasPrice + return x.Votes } - return 0 + return nil } -type BlockRequest struct { +type VersionNetworkRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Fields []BlockRequest_Field `protobuf:"varint,2,rep,packed,name=fields,proto3,enum=api_pb.BlockRequest_Field" json:"fields,omitempty"` } -func (x *BlockRequest) Reset() { - *x = BlockRequest{} +func (x *VersionNetworkRequest) Reset() { + *x = VersionNetworkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[6] + mi := &file_resources_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockRequest) String() string { +func (x *VersionNetworkRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockRequest) ProtoMessage() {} +func (*VersionNetworkRequest) ProtoMessage() {} -func (x *BlockRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[6] +func (x *VersionNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -657,60 +601,37 @@ func (x *BlockRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockRequest.ProtoReflect.Descriptor instead. -func (*BlockRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{6} -} - -func (x *BlockRequest) GetHeight() uint64 { - if x != nil { - return x.Height - } - return 0 -} - -func (x *BlockRequest) GetFields() []BlockRequest_Field { - if x != nil { - return x.Fields - } - return nil +// Deprecated: Use VersionNetworkRequest.ProtoReflect.Descriptor instead. +func (*VersionNetworkRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{7} } -type BlockResponse struct { +type VersionNetworkResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - Time string `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"` - TransactionCount uint64 `protobuf:"varint,4,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"` - Transactions []*BlockResponse_Transaction `protobuf:"bytes,6,rep,name=transactions,proto3" json:"transactions,omitempty"` - BlockReward string `protobuf:"bytes,7,opt,name=block_reward,json=blockReward,proto3" json:"block_reward,omitempty"` - Size uint64 `protobuf:"varint,8,opt,name=size,proto3" json:"size,omitempty"` - Proposer string `protobuf:"bytes,9,opt,name=proposer,proto3" json:"proposer,omitempty"` - Validators []*BlockResponse_Validator `protobuf:"bytes,10,rep,name=validators,proto3" json:"validators,omitempty"` - Evidence *BlockResponse_Evidence `protobuf:"bytes,13,opt,name=evidence,proto3" json:"evidence,omitempty"` - Missed []string `protobuf:"bytes,12,rep,name=missed,proto3" json:"missed,omitempty"` + Current string `protobuf:"bytes,1,opt,name=current,proto3" json:"current,omitempty"` + Versions []*VersionNetworkResponse_Version `protobuf:"bytes,3,rep,name=versions,proto3" json:"versions,omitempty"` } -func (x *BlockResponse) Reset() { - *x = BlockResponse{} +func (x *VersionNetworkResponse) Reset() { + *x = VersionNetworkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[7] + mi := &file_resources_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BlockResponse) String() string { +func (x *VersionNetworkResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BlockResponse) ProtoMessage() {} +func (*VersionNetworkResponse) ProtoMessage() {} -func (x *BlockResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[7] +func (x *VersionNetworkResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -721,89 +642,26 @@ func (x *BlockResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BlockResponse.ProtoReflect.Descriptor instead. -func (*BlockResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{7} -} - -func (x *BlockResponse) GetHash() string { - if x != nil { - return x.Hash - } - return "" -} - -func (x *BlockResponse) GetHeight() uint64 { - if x != nil { - return x.Height - } - return 0 -} - -func (x *BlockResponse) GetTime() string { - if x != nil { - return x.Time - } - return "" -} - -func (x *BlockResponse) GetTransactionCount() uint64 { - if x != nil { - return x.TransactionCount - } - return 0 -} - -func (x *BlockResponse) GetTransactions() []*BlockResponse_Transaction { - if x != nil { - return x.Transactions - } - return nil -} - -func (x *BlockResponse) GetBlockReward() string { - if x != nil { - return x.BlockReward - } - return "" -} - -func (x *BlockResponse) GetSize() uint64 { - if x != nil { - return x.Size - } - return 0 +// Deprecated: Use VersionNetworkResponse.ProtoReflect.Descriptor instead. +func (*VersionNetworkResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{8} } -func (x *BlockResponse) GetProposer() string { +func (x *VersionNetworkResponse) GetCurrent() string { if x != nil { - return x.Proposer + return x.Current } return "" } -func (x *BlockResponse) GetValidators() []*BlockResponse_Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *BlockResponse) GetEvidence() *BlockResponse_Evidence { - if x != nil { - return x.Evidence - } - return nil -} - -func (x *BlockResponse) GetMissed() []string { +func (x *VersionNetworkResponse) GetVersions() []*VersionNetworkResponse_Version { if x != nil { - return x.Missed + return x.Versions } return nil } -type MaxGasPriceRequest struct { +type PriceCommissionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -811,23 +669,23 @@ type MaxGasPriceRequest struct { Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` } -func (x *MaxGasPriceRequest) Reset() { - *x = MaxGasPriceRequest{} +func (x *PriceCommissionRequest) Reset() { + *x = PriceCommissionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[8] + mi := &file_resources_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MaxGasPriceRequest) String() string { +func (x *PriceCommissionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MaxGasPriceRequest) ProtoMessage() {} +func (*PriceCommissionRequest) ProtoMessage() {} -func (x *MaxGasPriceRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[8] +func (x *PriceCommissionRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -838,43 +696,85 @@ func (x *MaxGasPriceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MaxGasPriceRequest.ProtoReflect.Descriptor instead. -func (*MaxGasPriceRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{8} +// Deprecated: Use PriceCommissionRequest.ProtoReflect.Descriptor instead. +func (*PriceCommissionRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{9} } -func (x *MaxGasPriceRequest) GetHeight() uint64 { +func (x *PriceCommissionRequest) GetHeight() uint64 { if x != nil { return x.Height } return 0 } -type MaxGasPriceResponse struct { +type PriceCommissionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MaxGasPrice uint64 `protobuf:"varint,3,opt,name=max_gas_price,json=maxGasPrice,proto3" json:"max_gas_price,omitempty"` -} - -func (x *MaxGasPriceResponse) Reset() { - *x = MaxGasPriceResponse{} + Coin *Coin `protobuf:"bytes,3,opt,name=coin,proto3" json:"coin,omitempty"` + PayloadByte string `protobuf:"bytes,4,opt,name=payload_byte,json=payloadByte,proto3" json:"payload_byte,omitempty"` + Send string `protobuf:"bytes,5,opt,name=send,proto3" json:"send,omitempty"` + BuyBancor string `protobuf:"bytes,38,opt,name=buy_bancor,json=buyBancor,proto3" json:"buy_bancor,omitempty"` + SellBancor string `protobuf:"bytes,39,opt,name=sell_bancor,json=sellBancor,proto3" json:"sell_bancor,omitempty"` + SellAllBancor string `protobuf:"bytes,40,opt,name=sell_all_bancor,json=sellAllBancor,proto3" json:"sell_all_bancor,omitempty"` + BuyPoolBase string `protobuf:"bytes,41,opt,name=buy_pool_base,json=buyPoolBase,proto3" json:"buy_pool_base,omitempty"` + BuyPoolDelta string `protobuf:"bytes,53,opt,name=buy_pool_delta,json=buyPoolDelta,proto3" json:"buy_pool_delta,omitempty"` + SellPoolBase string `protobuf:"bytes,42,opt,name=sell_pool_base,json=sellPoolBase,proto3" json:"sell_pool_base,omitempty"` + SellPoolDelta string `protobuf:"bytes,54,opt,name=sell_pool_delta,json=sellPoolDelta,proto3" json:"sell_pool_delta,omitempty"` + SellAllPoolBase string `protobuf:"bytes,43,opt,name=sell_all_pool_base,json=sellAllPoolBase,proto3" json:"sell_all_pool_base,omitempty"` + SellAllPoolDelta string `protobuf:"bytes,55,opt,name=sell_all_pool_delta,json=sellAllPoolDelta,proto3" json:"sell_all_pool_delta,omitempty"` + CreateTicker3 string `protobuf:"bytes,7,opt,name=create_ticker3,json=createTicker3,proto3" json:"create_ticker3,omitempty"` + CreateTicker4 string `protobuf:"bytes,8,opt,name=create_ticker4,json=createTicker4,proto3" json:"create_ticker4,omitempty"` + CreateTicker5 string `protobuf:"bytes,9,opt,name=create_ticker5,json=createTicker5,proto3" json:"create_ticker5,omitempty"` + CreateTicker6 string `protobuf:"bytes,10,opt,name=create_ticker6,json=createTicker6,proto3" json:"create_ticker6,omitempty"` + CreateTicker7_10 string `protobuf:"bytes,11,opt,name=create_ticker7_10,json=createTicker710,proto3" json:"create_ticker7_10,omitempty"` + CreateCoin string `protobuf:"bytes,34,opt,name=create_coin,json=createCoin,proto3" json:"create_coin,omitempty"` + CreateToken string `protobuf:"bytes,35,opt,name=create_token,json=createToken,proto3" json:"create_token,omitempty"` + RecreateCoin string `protobuf:"bytes,36,opt,name=recreate_coin,json=recreateCoin,proto3" json:"recreate_coin,omitempty"` + RecreateToken string `protobuf:"bytes,37,opt,name=recreate_token,json=recreateToken,proto3" json:"recreate_token,omitempty"` + DeclareCandidacy string `protobuf:"bytes,13,opt,name=declare_candidacy,json=declareCandidacy,proto3" json:"declare_candidacy,omitempty"` + Delegate string `protobuf:"bytes,14,opt,name=delegate,proto3" json:"delegate,omitempty"` + Unbond string `protobuf:"bytes,15,opt,name=unbond,proto3" json:"unbond,omitempty"` + RedeemCheck string `protobuf:"bytes,16,opt,name=redeem_check,json=redeemCheck,proto3" json:"redeem_check,omitempty"` + SetCandidateOn string `protobuf:"bytes,44,opt,name=set_candidate_on,json=setCandidateOn,proto3" json:"set_candidate_on,omitempty"` + SetCandidateOff string `protobuf:"bytes,45,opt,name=set_candidate_off,json=setCandidateOff,proto3" json:"set_candidate_off,omitempty"` + CreateMultisig string `protobuf:"bytes,18,opt,name=create_multisig,json=createMultisig,proto3" json:"create_multisig,omitempty"` + MultisendBase string `protobuf:"bytes,51,opt,name=multisend_base,json=multisendBase,proto3" json:"multisend_base,omitempty"` + MultisendDelta string `protobuf:"bytes,52,opt,name=multisend_delta,json=multisendDelta,proto3" json:"multisend_delta,omitempty"` + EditCandidate string `protobuf:"bytes,20,opt,name=edit_candidate,json=editCandidate,proto3" json:"edit_candidate,omitempty"` + SetHaltBlock string `protobuf:"bytes,21,opt,name=set_halt_block,json=setHaltBlock,proto3" json:"set_halt_block,omitempty"` + EditTickerOwner string `protobuf:"bytes,22,opt,name=edit_ticker_owner,json=editTickerOwner,proto3" json:"edit_ticker_owner,omitempty"` + EditMultisig string `protobuf:"bytes,23,opt,name=edit_multisig,json=editMultisig,proto3" json:"edit_multisig,omitempty"` + EditCandidatePublicKey string `protobuf:"bytes,25,opt,name=edit_candidate_public_key,json=editCandidatePublicKey,proto3" json:"edit_candidate_public_key,omitempty"` + CreateSwapPool string `protobuf:"bytes,48,opt,name=create_swap_pool,json=createSwapPool,proto3" json:"create_swap_pool,omitempty"` + AddLiquidity string `protobuf:"bytes,49,opt,name=add_liquidity,json=addLiquidity,proto3" json:"add_liquidity,omitempty"` + RemoveLiquidity string `protobuf:"bytes,50,opt,name=remove_liquidity,json=removeLiquidity,proto3" json:"remove_liquidity,omitempty"` + EditCandidateCommission string `protobuf:"bytes,28,opt,name=edit_candidate_commission,json=editCandidateCommission,proto3" json:"edit_candidate_commission,omitempty"` + MintToken string `protobuf:"bytes,46,opt,name=mint_token,json=mintToken,proto3" json:"mint_token,omitempty"` + BurnToken string `protobuf:"bytes,47,opt,name=burn_token,json=burnToken,proto3" json:"burn_token,omitempty"` + VoteCommission string `protobuf:"bytes,31,opt,name=vote_commission,json=voteCommission,proto3" json:"vote_commission,omitempty"` + VoteUpdate string `protobuf:"bytes,32,opt,name=vote_update,json=voteUpdate,proto3" json:"vote_update,omitempty"` +} + +func (x *PriceCommissionResponse) Reset() { + *x = PriceCommissionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[9] + mi := &file_resources_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MaxGasPriceResponse) String() string { +func (x *PriceCommissionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MaxGasPriceResponse) ProtoMessage() {} +func (*PriceCommissionResponse) ProtoMessage() {} -func (x *MaxGasPriceResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[9] +func (x *PriceCommissionResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -885,321 +785,339 @@ func (x *MaxGasPriceResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MaxGasPriceResponse.ProtoReflect.Descriptor instead. -func (*MaxGasPriceResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{9} +// Deprecated: Use PriceCommissionResponse.ProtoReflect.Descriptor instead. +func (*PriceCommissionResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{10} } -func (x *MaxGasPriceResponse) GetMaxGasPrice() uint64 { +func (x *PriceCommissionResponse) GetCoin() *Coin { if x != nil { - return x.MaxGasPrice + return x.Coin } - return 0 + return nil } -type AddressRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - Delegated bool `protobuf:"varint,4,opt,name=delegated,proto3" json:"delegated,omitempty"` +func (x *PriceCommissionResponse) GetPayloadByte() string { + if x != nil { + return x.PayloadByte + } + return "" } -func (x *AddressRequest) Reset() { - *x = AddressRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PriceCommissionResponse) GetSend() string { + if x != nil { + return x.Send } + return "" } -func (x *AddressRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PriceCommissionResponse) GetBuyBancor() string { + if x != nil { + return x.BuyBancor + } + return "" } -func (*AddressRequest) ProtoMessage() {} - -func (x *AddressRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PriceCommissionResponse) GetSellBancor() string { + if x != nil { + return x.SellBancor } - return mi.MessageOf(x) + return "" } -// Deprecated: Use AddressRequest.ProtoReflect.Descriptor instead. -func (*AddressRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{10} +func (x *PriceCommissionResponse) GetSellAllBancor() string { + if x != nil { + return x.SellAllBancor + } + return "" } -func (x *AddressRequest) GetAddress() string { +func (x *PriceCommissionResponse) GetBuyPoolBase() string { if x != nil { - return x.Address + return x.BuyPoolBase } return "" } -func (x *AddressRequest) GetHeight() uint64 { +func (x *PriceCommissionResponse) GetBuyPoolDelta() string { if x != nil { - return x.Height + return x.BuyPoolDelta } - return 0 + return "" } -func (x *AddressRequest) GetDelegated() bool { +func (x *PriceCommissionResponse) GetSellPoolBase() string { if x != nil { - return x.Delegated + return x.SellPoolBase } - return false + return "" } -type AddressBalance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - BipValue string `protobuf:"bytes,3,opt,name=bip_value,json=bipValue,proto3" json:"bip_value,omitempty"` +func (x *PriceCommissionResponse) GetSellPoolDelta() string { + if x != nil { + return x.SellPoolDelta + } + return "" } -func (x *AddressBalance) Reset() { - *x = AddressBalance{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PriceCommissionResponse) GetSellAllPoolBase() string { + if x != nil { + return x.SellAllPoolBase } + return "" } -func (x *AddressBalance) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PriceCommissionResponse) GetSellAllPoolDelta() string { + if x != nil { + return x.SellAllPoolDelta + } + return "" } -func (*AddressBalance) ProtoMessage() {} +func (x *PriceCommissionResponse) GetCreateTicker3() string { + if x != nil { + return x.CreateTicker3 + } + return "" +} -func (x *AddressBalance) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PriceCommissionResponse) GetCreateTicker4() string { + if x != nil { + return x.CreateTicker4 } - return mi.MessageOf(x) + return "" } -// Deprecated: Use AddressBalance.ProtoReflect.Descriptor instead. -func (*AddressBalance) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{11} +func (x *PriceCommissionResponse) GetCreateTicker5() string { + if x != nil { + return x.CreateTicker5 + } + return "" } -func (x *AddressBalance) GetCoin() *Coin { +func (x *PriceCommissionResponse) GetCreateTicker6() string { if x != nil { - return x.Coin + return x.CreateTicker6 } - return nil + return "" } -func (x *AddressBalance) GetValue() string { +func (x *PriceCommissionResponse) GetCreateTicker7_10() string { if x != nil { - return x.Value + return x.CreateTicker7_10 } return "" } -func (x *AddressBalance) GetBipValue() string { +func (x *PriceCommissionResponse) GetCreateCoin() string { if x != nil { - return x.BipValue + return x.CreateCoin } return "" } -type AddressDelegatedBalance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PriceCommissionResponse) GetCreateToken() string { + if x != nil { + return x.CreateToken + } + return "" +} - Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - BipValue string `protobuf:"bytes,3,opt,name=bip_value,json=bipValue,proto3" json:"bip_value,omitempty"` - DelegateBipValue string `protobuf:"bytes,4,opt,name=delegate_bip_value,json=delegateBipValue,proto3" json:"delegate_bip_value,omitempty"` +func (x *PriceCommissionResponse) GetRecreateCoin() string { + if x != nil { + return x.RecreateCoin + } + return "" } -func (x *AddressDelegatedBalance) Reset() { - *x = AddressDelegatedBalance{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PriceCommissionResponse) GetRecreateToken() string { + if x != nil { + return x.RecreateToken } + return "" } -func (x *AddressDelegatedBalance) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PriceCommissionResponse) GetDeclareCandidacy() string { + if x != nil { + return x.DeclareCandidacy + } + return "" } -func (*AddressDelegatedBalance) ProtoMessage() {} +func (x *PriceCommissionResponse) GetDelegate() string { + if x != nil { + return x.Delegate + } + return "" +} -func (x *AddressDelegatedBalance) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PriceCommissionResponse) GetUnbond() string { + if x != nil { + return x.Unbond } - return mi.MessageOf(x) + return "" } -// Deprecated: Use AddressDelegatedBalance.ProtoReflect.Descriptor instead. -func (*AddressDelegatedBalance) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{12} +func (x *PriceCommissionResponse) GetRedeemCheck() string { + if x != nil { + return x.RedeemCheck + } + return "" } -func (x *AddressDelegatedBalance) GetCoin() *Coin { +func (x *PriceCommissionResponse) GetSetCandidateOn() string { if x != nil { - return x.Coin + return x.SetCandidateOn } - return nil + return "" } -func (x *AddressDelegatedBalance) GetValue() string { +func (x *PriceCommissionResponse) GetSetCandidateOff() string { if x != nil { - return x.Value + return x.SetCandidateOff } return "" } -func (x *AddressDelegatedBalance) GetBipValue() string { +func (x *PriceCommissionResponse) GetCreateMultisig() string { if x != nil { - return x.BipValue + return x.CreateMultisig } return "" } -func (x *AddressDelegatedBalance) GetDelegateBipValue() string { +func (x *PriceCommissionResponse) GetMultisendBase() string { if x != nil { - return x.DelegateBipValue + return x.MultisendBase } return "" } -type AddressResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PriceCommissionResponse) GetMultisendDelta() string { + if x != nil { + return x.MultisendDelta + } + return "" +} - Balance []*AddressBalance `protobuf:"bytes,1,rep,name=balance,proto3" json:"balance,omitempty"` - Delegated []*AddressDelegatedBalance `protobuf:"bytes,3,rep,name=delegated,proto3" json:"delegated,omitempty"` - Total []*AddressBalance `protobuf:"bytes,4,rep,name=total,proto3" json:"total,omitempty"` - TransactionCount uint64 `protobuf:"varint,2,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"` - BipValue string `protobuf:"bytes,5,opt,name=bip_value,json=bipValue,proto3" json:"bip_value,omitempty"` +func (x *PriceCommissionResponse) GetEditCandidate() string { + if x != nil { + return x.EditCandidate + } + return "" } -func (x *AddressResponse) Reset() { - *x = AddressResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PriceCommissionResponse) GetSetHaltBlock() string { + if x != nil { + return x.SetHaltBlock } + return "" } -func (x *AddressResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PriceCommissionResponse) GetEditTickerOwner() string { + if x != nil { + return x.EditTickerOwner + } + return "" } -func (*AddressResponse) ProtoMessage() {} +func (x *PriceCommissionResponse) GetEditMultisig() string { + if x != nil { + return x.EditMultisig + } + return "" +} -func (x *AddressResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PriceCommissionResponse) GetEditCandidatePublicKey() string { + if x != nil { + return x.EditCandidatePublicKey } - return mi.MessageOf(x) + return "" } -// Deprecated: Use AddressResponse.ProtoReflect.Descriptor instead. -func (*AddressResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{13} +func (x *PriceCommissionResponse) GetCreateSwapPool() string { + if x != nil { + return x.CreateSwapPool + } + return "" } -func (x *AddressResponse) GetBalance() []*AddressBalance { +func (x *PriceCommissionResponse) GetAddLiquidity() string { if x != nil { - return x.Balance + return x.AddLiquidity } - return nil + return "" } -func (x *AddressResponse) GetDelegated() []*AddressDelegatedBalance { +func (x *PriceCommissionResponse) GetRemoveLiquidity() string { if x != nil { - return x.Delegated + return x.RemoveLiquidity } - return nil + return "" } -func (x *AddressResponse) GetTotal() []*AddressBalance { +func (x *PriceCommissionResponse) GetEditCandidateCommission() string { if x != nil { - return x.Total + return x.EditCandidateCommission } - return nil + return "" } -func (x *AddressResponse) GetTransactionCount() uint64 { +func (x *PriceCommissionResponse) GetMintToken() string { if x != nil { - return x.TransactionCount + return x.MintToken } - return 0 + return "" } -func (x *AddressResponse) GetBipValue() string { +func (x *PriceCommissionResponse) GetBurnToken() string { if x != nil { - return x.BipValue + return x.BurnToken } return "" } -type AddressesRequest struct { +func (x *PriceCommissionResponse) GetVoteCommission() string { + if x != nil { + return x.VoteCommission + } + return "" +} + +func (x *PriceCommissionResponse) GetVoteUpdate() string { + if x != nil { + return x.VoteUpdate + } + return "" +} + +type SwapPoolRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - Delegated bool `protobuf:"varint,4,opt,name=delegated,proto3" json:"delegated,omitempty"` + Coin0 uint64 `protobuf:"varint,1,opt,name=coin0,proto3" json:"coin0,omitempty"` + Coin1 uint64 `protobuf:"varint,2,opt,name=coin1,proto3" json:"coin1,omitempty"` + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` } -func (x *AddressesRequest) Reset() { - *x = AddressesRequest{} +func (x *SwapPoolRequest) Reset() { + *x = SwapPoolRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[14] + mi := &file_resources_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddressesRequest) String() string { +func (x *SwapPoolRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddressesRequest) ProtoMessage() {} +func (*SwapPoolRequest) ProtoMessage() {} -func (x *AddressesRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[14] +func (x *SwapPoolRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1210,57 +1128,59 @@ func (x *AddressesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddressesRequest.ProtoReflect.Descriptor instead. -func (*AddressesRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{14} +// Deprecated: Use SwapPoolRequest.ProtoReflect.Descriptor instead. +func (*SwapPoolRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{11} } -func (x *AddressesRequest) GetAddresses() []string { +func (x *SwapPoolRequest) GetCoin0() uint64 { if x != nil { - return x.Addresses + return x.Coin0 } - return nil + return 0 } -func (x *AddressesRequest) GetHeight() uint64 { +func (x *SwapPoolRequest) GetCoin1() uint64 { if x != nil { - return x.Height + return x.Coin1 } return 0 } -func (x *AddressesRequest) GetDelegated() bool { +func (x *SwapPoolRequest) GetHeight() uint64 { if x != nil { - return x.Delegated + return x.Height } - return false + return 0 } -type AddressesResponse struct { +type SwapPoolResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Addresses map[string]*AddressesResponse_Result `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Amount0 string `protobuf:"bytes,1,opt,name=amount0,proto3" json:"amount0,omitempty"` + Amount1 string `protobuf:"bytes,2,opt,name=amount1,proto3" json:"amount1,omitempty"` + Liquidity string `protobuf:"bytes,3,opt,name=liquidity,proto3" json:"liquidity,omitempty"` } -func (x *AddressesResponse) Reset() { - *x = AddressesResponse{} +func (x *SwapPoolResponse) Reset() { + *x = SwapPoolResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[15] + mi := &file_resources_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddressesResponse) String() string { +func (x *SwapPoolResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddressesResponse) ProtoMessage() {} +func (*SwapPoolResponse) ProtoMessage() {} -func (x *AddressesResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[15] +func (x *SwapPoolResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1271,48 +1191,60 @@ func (x *AddressesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddressesResponse.ProtoReflect.Descriptor instead. -func (*AddressesResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{15} +// Deprecated: Use SwapPoolResponse.ProtoReflect.Descriptor instead. +func (*SwapPoolResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{12} } -func (x *AddressesResponse) GetAddresses() map[string]*AddressesResponse_Result { +func (x *SwapPoolResponse) GetAmount0() string { if x != nil { - return x.Addresses + return x.Amount0 } - return nil + return "" } -type CandidateRequest struct { +func (x *SwapPoolResponse) GetAmount1() string { + if x != nil { + return x.Amount1 + } + return "" +} + +func (x *SwapPoolResponse) GetLiquidity() string { + if x != nil { + return x.Liquidity + } + return "" +} + +type SwapPoolProviderRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Public key of a candidate - PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - // Blockchain state height for the current request. Optional, the last default state of the node is used - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - // Do not display a list of steaks. Note: used_slots, uniq_users, min_stake will be filled - NotShowStakes bool `protobuf:"varint,4,opt,name=not_show_stakes,json=notShowStakes,proto3" json:"not_show_stakes,omitempty"` + Coin0 uint64 `protobuf:"varint,1,opt,name=coin0,proto3" json:"coin0,omitempty"` + Coin1 uint64 `protobuf:"varint,2,opt,name=coin1,proto3" json:"coin1,omitempty"` + Provider string `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` } -func (x *CandidateRequest) Reset() { - *x = CandidateRequest{} +func (x *SwapPoolProviderRequest) Reset() { + *x = SwapPoolProviderRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[16] + mi := &file_resources_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CandidateRequest) String() string { +func (x *SwapPoolProviderRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CandidateRequest) ProtoMessage() {} +func (*SwapPoolProviderRequest) ProtoMessage() {} -func (x *CandidateRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[16] +func (x *SwapPoolProviderRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1323,80 +1255,71 @@ func (x *CandidateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CandidateRequest.ProtoReflect.Descriptor instead. -func (*CandidateRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{16} +// Deprecated: Use SwapPoolProviderRequest.ProtoReflect.Descriptor instead. +func (*SwapPoolProviderRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{13} } -func (x *CandidateRequest) GetPublicKey() string { +func (x *SwapPoolProviderRequest) GetCoin0() uint64 { if x != nil { - return x.PublicKey + return x.Coin0 } - return "" + return 0 } -func (x *CandidateRequest) GetHeight() uint64 { +func (x *SwapPoolProviderRequest) GetCoin1() uint64 { if x != nil { - return x.Height + return x.Coin1 } return 0 } -func (x *CandidateRequest) GetNotShowStakes() bool { +func (x *SwapPoolProviderRequest) GetProvider() string { if x != nil { - return x.NotShowStakes + return x.Provider } - return false + return "" } -type CandidateResponse struct { +func (x *SwapPoolProviderRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type NodeInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Address where validator’s rewards go to. - RewardAddress string `protobuf:"bytes,1,opt,name=reward_address,json=rewardAddress,proto3" json:"reward_address,omitempty"` - // Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. It also enables the owner to edit the node by sending EditCandidate. - OwnerAddress string `protobuf:"bytes,10,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` - // Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. - ControlAddress string `protobuf:"bytes,11,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` - // Total stake of a candidate - TotalStake string `protobuf:"bytes,2,opt,name=total_stake,json=totalStake,proto3" json:"total_stake,omitempty"` - // Public key of a candidate - PublicKey string `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - // Commission (from 0 to 100) from rewards which delegators will pay to validator - Commission uint64 `protobuf:"varint,4,opt,name=commission,proto3" json:"commission,omitempty"` - // Number of occupied steak slots. Note: filled in when request includes_stakes - UsedSlots *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=used_slots,json=usedSlots,proto3" json:"used_slots,omitempty"` - // Number of unique wallets in steaks. Note: filled in when request includes_stakes - UniqUsers *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=uniq_users,json=uniqUsers,proto3" json:"uniq_users,omitempty"` - // Smallest steak size. Note: filled in when request includes_stakes - MinStake *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // List of stakes. Note: filled in when request includes_stakes - Stakes []*CandidateResponse_Stake `protobuf:"bytes,5,rep,name=stakes,proto3" json:"stakes,omitempty"` - // Candidate status. Available values: offline = 1, online = 2 - Status uint64 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` - // Is a validator at the current height - Validator bool `protobuf:"varint,12,opt,name=validator,proto3" json:"validator,omitempty"` + ProtocolVersion *NodeInfo_ProtocolVersion `protobuf:"bytes,8,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ListenAddr string `protobuf:"bytes,2,opt,name=listen_addr,json=listenAddr,proto3" json:"listen_addr,omitempty"` + Network string `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty"` + Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + Channels string `protobuf:"bytes,5,opt,name=channels,proto3" json:"channels,omitempty"` + Moniker string `protobuf:"bytes,6,opt,name=moniker,proto3" json:"moniker,omitempty"` + Other *NodeInfo_Other `protobuf:"bytes,7,opt,name=other,proto3" json:"other,omitempty"` } -func (x *CandidateResponse) Reset() { - *x = CandidateResponse{} +func (x *NodeInfo) Reset() { + *x = NodeInfo{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[17] + mi := &file_resources_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CandidateResponse) String() string { +func (x *NodeInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CandidateResponse) ProtoMessage() {} +func (*NodeInfo) ProtoMessage() {} -func (x *CandidateResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[17] +func (x *NodeInfo) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1407,126 +1330,95 @@ func (x *CandidateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CandidateResponse.ProtoReflect.Descriptor instead. -func (*CandidateResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{17} +// Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{14} } -func (x *CandidateResponse) GetRewardAddress() string { +func (x *NodeInfo) GetProtocolVersion() *NodeInfo_ProtocolVersion { if x != nil { - return x.RewardAddress + return x.ProtocolVersion } - return "" + return nil } -func (x *CandidateResponse) GetOwnerAddress() string { +func (x *NodeInfo) GetId() string { if x != nil { - return x.OwnerAddress + return x.Id } return "" } -func (x *CandidateResponse) GetControlAddress() string { +func (x *NodeInfo) GetListenAddr() string { if x != nil { - return x.ControlAddress + return x.ListenAddr } return "" } -func (x *CandidateResponse) GetTotalStake() string { +func (x *NodeInfo) GetNetwork() string { if x != nil { - return x.TotalStake + return x.Network } return "" } -func (x *CandidateResponse) GetPublicKey() string { +func (x *NodeInfo) GetVersion() string { if x != nil { - return x.PublicKey + return x.Version } return "" } -func (x *CandidateResponse) GetCommission() uint64 { - if x != nil { - return x.Commission - } - return 0 -} - -func (x *CandidateResponse) GetUsedSlots() *wrapperspb.UInt64Value { - if x != nil { - return x.UsedSlots - } - return nil -} - -func (x *CandidateResponse) GetUniqUsers() *wrapperspb.UInt64Value { +func (x *NodeInfo) GetChannels() string { if x != nil { - return x.UniqUsers + return x.Channels } - return nil + return "" } -func (x *CandidateResponse) GetMinStake() *wrapperspb.StringValue { +func (x *NodeInfo) GetMoniker() string { if x != nil { - return x.MinStake + return x.Moniker } - return nil + return "" } -func (x *CandidateResponse) GetStakes() []*CandidateResponse_Stake { +func (x *NodeInfo) GetOther() *NodeInfo_Other { if x != nil { - return x.Stakes + return x.Other } return nil } -func (x *CandidateResponse) GetStatus() uint64 { - if x != nil { - return x.Status - } - return 0 -} - -func (x *CandidateResponse) GetValidator() bool { - if x != nil { - return x.Validator - } - return false -} - -type CandidatesRequest struct { +type NetInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Blockchain state height for the current request. Optional, the last default state of the node is used - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - // Calculate field values used_slots, uniq_users, min_stake - IncludeStakes bool `protobuf:"varint,2,opt,name=include_stakes,json=includeStakes,proto3" json:"include_stakes,omitempty"` - // Do not display the list of stakes, the include_stakes flag is also required to display. Note: used_slots, uniq_users, min_stake will still be filled if include_stakes flag is used - NotShowStakes bool `protobuf:"varint,4,opt,name=not_show_stakes,json=notShowStakes,proto3" json:"not_show_stakes,omitempty"` - Status CandidatesRequest_CandidateStatus `protobuf:"varint,3,opt,name=status,proto3,enum=api_pb.CandidatesRequest_CandidateStatus" json:"status,omitempty"` + Listening bool `protobuf:"varint,4,opt,name=listening,proto3" json:"listening,omitempty"` + Listeners []string `protobuf:"bytes,1,rep,name=listeners,proto3" json:"listeners,omitempty"` + CountPeers int64 `protobuf:"varint,2,opt,name=count_peers,json=countPeers,proto3" json:"count_peers,omitempty"` + Peers []*NetInfoResponse_Peer `protobuf:"bytes,3,rep,name=peers,proto3" json:"peers,omitempty"` } -func (x *CandidatesRequest) Reset() { - *x = CandidatesRequest{} +func (x *NetInfoResponse) Reset() { + *x = NetInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[18] + mi := &file_resources_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CandidatesRequest) String() string { +func (x *NetInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CandidatesRequest) ProtoMessage() {} +func (*NetInfoResponse) ProtoMessage() {} -func (x *CandidatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[18] +func (x *NetInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1537,64 +1429,76 @@ func (x *CandidatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CandidatesRequest.ProtoReflect.Descriptor instead. -func (*CandidatesRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{18} +// Deprecated: Use NetInfoResponse.ProtoReflect.Descriptor instead. +func (*NetInfoResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{15} } -func (x *CandidatesRequest) GetHeight() uint64 { +func (x *NetInfoResponse) GetListening() bool { if x != nil { - return x.Height + return x.Listening } - return 0 + return false } -func (x *CandidatesRequest) GetIncludeStakes() bool { +func (x *NetInfoResponse) GetListeners() []string { if x != nil { - return x.IncludeStakes + return x.Listeners } - return false + return nil } -func (x *CandidatesRequest) GetNotShowStakes() bool { +func (x *NetInfoResponse) GetCountPeers() int64 { if x != nil { - return x.NotShowStakes + return x.CountPeers } - return false + return 0 } -func (x *CandidatesRequest) GetStatus() CandidatesRequest_CandidateStatus { +func (x *NetInfoResponse) GetPeers() []*NetInfoResponse_Peer { if x != nil { - return x.Status + return x.Peers } - return CandidatesRequest_all + return nil } -type CandidatesResponse struct { +type StatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Candidates []*CandidateResponse `protobuf:"bytes,3,rep,name=candidates,proto3" json:"candidates,omitempty"` + Version string `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` + Network string `protobuf:"bytes,11,opt,name=network,proto3" json:"network,omitempty"` + InitialHeight uint64 `protobuf:"varint,12,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` + LatestBlockHash string `protobuf:"bytes,1,opt,name=latest_block_hash,json=latestBlockHash,proto3" json:"latest_block_hash,omitempty"` + LatestAppHash string `protobuf:"bytes,2,opt,name=latest_app_hash,json=latestAppHash,proto3" json:"latest_app_hash,omitempty"` + LatestBlockHeight uint64 `protobuf:"varint,3,opt,name=latest_block_height,json=latestBlockHeight,proto3" json:"latest_block_height,omitempty"` + LatestBlockTime string `protobuf:"bytes,4,opt,name=latest_block_time,json=latestBlockTime,proto3" json:"latest_block_time,omitempty"` + KeepLastStates uint64 `protobuf:"varint,5,opt,name=keep_last_states,json=keepLastStates,proto3" json:"keep_last_states,omitempty"` + TotalSlashed string `protobuf:"bytes,10,opt,name=total_slashed,json=totalSlashed,proto3" json:"total_slashed,omitempty"` + CatchingUp bool `protobuf:"varint,6,opt,name=catching_up,json=catchingUp,proto3" json:"catching_up,omitempty"` + PublicKey string `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + NodeId string `protobuf:"bytes,9,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + Moniker string `protobuf:"bytes,13,opt,name=moniker,proto3" json:"moniker,omitempty"` } -func (x *CandidatesResponse) Reset() { - *x = CandidatesResponse{} +func (x *StatusResponse) Reset() { + *x = StatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[19] + mi := &file_resources_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CandidatesResponse) String() string { +func (x *StatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CandidatesResponse) ProtoMessage() {} +func (*StatusResponse) ProtoMessage() {} -func (x *CandidatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[19] +func (x *StatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1605,160 +1509,132 @@ func (x *CandidatesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CandidatesResponse.ProtoReflect.Descriptor instead. -func (*CandidatesResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{19} +// Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. +func (*StatusResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{16} } -func (x *CandidatesResponse) GetCandidates() []*CandidateResponse { +func (x *StatusResponse) GetVersion() string { if x != nil { - return x.Candidates + return x.Version } - return nil + return "" } -type CoinIdRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +func (x *StatusResponse) GetNetwork() string { + if x != nil { + return x.Network + } + return "" } -func (x *CoinIdRequest) Reset() { - *x = CoinIdRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *StatusResponse) GetInitialHeight() uint64 { + if x != nil { + return x.InitialHeight } + return 0 } -func (x *CoinIdRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *StatusResponse) GetLatestBlockHash() string { + if x != nil { + return x.LatestBlockHash + } + return "" } -func (*CoinIdRequest) ProtoMessage() {} - -func (x *CoinIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *StatusResponse) GetLatestAppHash() string { + if x != nil { + return x.LatestAppHash } - return mi.MessageOf(x) -} - -// Deprecated: Use CoinIdRequest.ProtoReflect.Descriptor instead. -func (*CoinIdRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{20} + return "" } -func (x *CoinIdRequest) GetHeight() uint64 { +func (x *StatusResponse) GetLatestBlockHeight() uint64 { if x != nil { - return x.Height + return x.LatestBlockHeight } return 0 } -func (x *CoinIdRequest) GetId() uint64 { +func (x *StatusResponse) GetLatestBlockTime() string { if x != nil { - return x.Id + return x.LatestBlockTime } - return 0 -} - -type CoinInfoRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + return "" } -func (x *CoinInfoRequest) Reset() { - *x = CoinInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *StatusResponse) GetKeepLastStates() uint64 { + if x != nil { + return x.KeepLastStates } + return 0 } -func (x *CoinInfoRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *StatusResponse) GetTotalSlashed() string { + if x != nil { + return x.TotalSlashed + } + return "" } -func (*CoinInfoRequest) ProtoMessage() {} - -func (x *CoinInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *StatusResponse) GetCatchingUp() bool { + if x != nil { + return x.CatchingUp } - return mi.MessageOf(x) + return false } -// Deprecated: Use CoinInfoRequest.ProtoReflect.Descriptor instead. -func (*CoinInfoRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{21} +func (x *StatusResponse) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" } -func (x *CoinInfoRequest) GetHeight() uint64 { +func (x *StatusResponse) GetNodeId() string { if x != nil { - return x.Height + return x.NodeId } - return 0 + return "" } -func (x *CoinInfoRequest) GetSymbol() string { +func (x *StatusResponse) GetMoniker() string { if x != nil { - return x.Symbol + return x.Moniker } return "" } -type CoinInfoResponse struct { +type GenesisResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint64 `protobuf:"varint,6,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` - Volume string `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"` - Crr uint64 `protobuf:"varint,4,opt,name=crr,proto3" json:"crr,omitempty"` - ReserveBalance string `protobuf:"bytes,5,opt,name=reserve_balance,json=reserveBalance,proto3" json:"reserve_balance,omitempty"` - MaxSupply string `protobuf:"bytes,8,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` - OwnerAddress *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + GenesisTime string `protobuf:"bytes,1,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` + ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + InitialHeight uint64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` + ConsensusParams *GenesisResponse_ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` + AppHash string `protobuf:"bytes,4,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` + AppState *GenesisResponse_AppState `protobuf:"bytes,5,opt,name=app_state,json=appState,proto3" json:"app_state,omitempty"` } -func (x *CoinInfoResponse) Reset() { - *x = CoinInfoResponse{} +func (x *GenesisResponse) Reset() { + *x = GenesisResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[22] + mi := &file_resources_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CoinInfoResponse) String() string { +func (x *GenesisResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CoinInfoResponse) ProtoMessage() {} +func (*GenesisResponse) ProtoMessage() {} -func (x *CoinInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[22] +func (x *GenesisResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1769,94 +1645,78 @@ func (x *CoinInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CoinInfoResponse.ProtoReflect.Descriptor instead. -func (*CoinInfoResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{22} -} - -func (x *CoinInfoResponse) GetId() uint64 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *CoinInfoResponse) GetName() string { - if x != nil { - return x.Name - } - return "" +// Deprecated: Use GenesisResponse.ProtoReflect.Descriptor instead. +func (*GenesisResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17} } -func (x *CoinInfoResponse) GetSymbol() string { +func (x *GenesisResponse) GetGenesisTime() string { if x != nil { - return x.Symbol + return x.GenesisTime } return "" } -func (x *CoinInfoResponse) GetVolume() string { +func (x *GenesisResponse) GetChainId() string { if x != nil { - return x.Volume + return x.ChainId } return "" } -func (x *CoinInfoResponse) GetCrr() uint64 { +func (x *GenesisResponse) GetInitialHeight() uint64 { if x != nil { - return x.Crr + return x.InitialHeight } return 0 } -func (x *CoinInfoResponse) GetReserveBalance() string { +func (x *GenesisResponse) GetConsensusParams() *GenesisResponse_ConsensusParams { if x != nil { - return x.ReserveBalance + return x.ConsensusParams } - return "" + return nil } -func (x *CoinInfoResponse) GetMaxSupply() string { +func (x *GenesisResponse) GetAppHash() string { if x != nil { - return x.MaxSupply + return x.AppHash } return "" } -func (x *CoinInfoResponse) GetOwnerAddress() *wrapperspb.StringValue { +func (x *GenesisResponse) GetAppState() *GenesisResponse_AppState { if x != nil { - return x.OwnerAddress + return x.AppState } return nil } -type SendTransactionResponse struct { +type MinGasPriceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code uint64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` - Hash string `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` + MinGasPrice uint64 `protobuf:"varint,3,opt,name=min_gas_price,json=minGasPrice,proto3" json:"min_gas_price,omitempty"` } -func (x *SendTransactionResponse) Reset() { - *x = SendTransactionResponse{} +func (x *MinGasPriceResponse) Reset() { + *x = MinGasPriceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[23] + mi := &file_resources_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendTransactionResponse) String() string { +func (x *MinGasPriceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendTransactionResponse) ProtoMessage() {} +func (*MinGasPriceResponse) ProtoMessage() {} -func (x *SendTransactionResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[23] +func (x *MinGasPriceResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1867,57 +1727,45 @@ func (x *SendTransactionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendTransactionResponse.ProtoReflect.Descriptor instead. -func (*SendTransactionResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{23} +// Deprecated: Use MinGasPriceResponse.ProtoReflect.Descriptor instead. +func (*MinGasPriceResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{18} } -func (x *SendTransactionResponse) GetCode() uint64 { +func (x *MinGasPriceResponse) GetMinGasPrice() uint64 { if x != nil { - return x.Code + return x.MinGasPrice } return 0 } -func (x *SendTransactionResponse) GetLog() string { - if x != nil { - return x.Log - } - return "" -} - -func (x *SendTransactionResponse) GetHash() string { - if x != nil { - return x.Hash - } - return "" -} - -type SendTransactionRequest struct { +type BlockRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tx string `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Fields []BlockField `protobuf:"varint,2,rep,packed,name=fields,proto3,enum=api_pb.BlockField" json:"fields,omitempty"` + FailedTxs bool `protobuf:"varint,3,opt,name=failed_txs,json=failedTxs,proto3" json:"failed_txs,omitempty"` } -func (x *SendTransactionRequest) Reset() { - *x = SendTransactionRequest{} +func (x *BlockRequest) Reset() { + *x = BlockRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[24] + mi := &file_resources_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendTransactionRequest) String() string { +func (x *BlockRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendTransactionRequest) ProtoMessage() {} +func (*BlockRequest) ProtoMessage() {} -func (x *SendTransactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[24] +func (x *BlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1928,57 +1776,67 @@ func (x *SendTransactionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendTransactionRequest.ProtoReflect.Descriptor instead. -func (*SendTransactionRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{24} +// Deprecated: Use BlockRequest.ProtoReflect.Descriptor instead. +func (*BlockRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{19} } -func (x *SendTransactionRequest) GetTx() string { +func (x *BlockRequest) GetHeight() uint64 { if x != nil { - return x.Tx + return x.Height } - return "" + return 0 } -type TransactionResponse struct { +func (x *BlockRequest) GetFields() []BlockField { + if x != nil { + return x.Fields + } + return nil +} + +func (x *BlockRequest) GetFailedTxs() bool { + if x != nil { + return x.FailedTxs + } + return false +} + +type BlockResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` - RawTx string `protobuf:"bytes,2,opt,name=raw_tx,json=rawTx,proto3" json:"raw_tx,omitempty"` - Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` - Index uint64 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` - From string `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"` - Nonce uint64 `protobuf:"varint,6,opt,name=nonce,proto3" json:"nonce,omitempty"` - Gas uint64 `protobuf:"varint,7,opt,name=gas,proto3" json:"gas,omitempty"` - GasPrice uint64 `protobuf:"varint,8,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` - GasCoin *Coin `protobuf:"bytes,9,opt,name=gas_coin,json=gasCoin,proto3" json:"gas_coin,omitempty"` - Type uint64 `protobuf:"varint,10,opt,name=type,proto3" json:"type,omitempty"` - Data *anypb.Any `protobuf:"bytes,11,opt,name=data,proto3" json:"data,omitempty"` - Payload []byte `protobuf:"bytes,12,opt,name=payload,proto3" json:"payload,omitempty"` - Tags map[string]string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Code uint64 `protobuf:"varint,14,opt,name=code,proto3" json:"code,omitempty"` - Log string `protobuf:"bytes,15,opt,name=log,proto3" json:"log,omitempty"` + Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Time string `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"` + TransactionCount uint64 `protobuf:"varint,4,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"` + Transactions []*TransactionResponse `protobuf:"bytes,6,rep,name=transactions,proto3" json:"transactions,omitempty"` + BlockReward string `protobuf:"bytes,7,opt,name=block_reward,json=blockReward,proto3" json:"block_reward,omitempty"` + Size uint64 `protobuf:"varint,8,opt,name=size,proto3" json:"size,omitempty"` + Proposer string `protobuf:"bytes,9,opt,name=proposer,proto3" json:"proposer,omitempty"` + Validators []*BlockResponse_Validator `protobuf:"bytes,10,rep,name=validators,proto3" json:"validators,omitempty"` + Evidence *BlockResponse_Evidence `protobuf:"bytes,13,opt,name=evidence,proto3" json:"evidence,omitempty"` + Missed []string `protobuf:"bytes,12,rep,name=missed,proto3" json:"missed,omitempty"` } -func (x *TransactionResponse) Reset() { - *x = TransactionResponse{} +func (x *BlockResponse) Reset() { + *x = BlockResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[25] + mi := &file_resources_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TransactionResponse) String() string { +func (x *BlockResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TransactionResponse) ProtoMessage() {} +func (*BlockResponse) ProtoMessage() {} -func (x *TransactionResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[25] +func (x *BlockResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1989,141 +1847,113 @@ func (x *TransactionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TransactionResponse.ProtoReflect.Descriptor instead. -func (*TransactionResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{25} +// Deprecated: Use BlockResponse.ProtoReflect.Descriptor instead. +func (*BlockResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{20} } -func (x *TransactionResponse) GetHash() string { +func (x *BlockResponse) GetHash() string { if x != nil { return x.Hash } return "" } -func (x *TransactionResponse) GetRawTx() string { - if x != nil { - return x.RawTx - } - return "" -} - -func (x *TransactionResponse) GetHeight() uint64 { +func (x *BlockResponse) GetHeight() uint64 { if x != nil { return x.Height } return 0 } -func (x *TransactionResponse) GetIndex() uint64 { - if x != nil { - return x.Index - } - return 0 -} - -func (x *TransactionResponse) GetFrom() string { +func (x *BlockResponse) GetTime() string { if x != nil { - return x.From + return x.Time } return "" } -func (x *TransactionResponse) GetNonce() uint64 { - if x != nil { - return x.Nonce - } - return 0 -} - -func (x *TransactionResponse) GetGas() uint64 { +func (x *BlockResponse) GetTransactionCount() uint64 { if x != nil { - return x.Gas + return x.TransactionCount } return 0 } -func (x *TransactionResponse) GetGasPrice() uint64 { +func (x *BlockResponse) GetTransactions() []*TransactionResponse { if x != nil { - return x.GasPrice + return x.Transactions } - return 0 + return nil } -func (x *TransactionResponse) GetGasCoin() *Coin { +func (x *BlockResponse) GetBlockReward() string { if x != nil { - return x.GasCoin + return x.BlockReward } - return nil + return "" } -func (x *TransactionResponse) GetType() uint64 { +func (x *BlockResponse) GetSize() uint64 { if x != nil { - return x.Type + return x.Size } return 0 } -func (x *TransactionResponse) GetData() *anypb.Any { +func (x *BlockResponse) GetProposer() string { if x != nil { - return x.Data + return x.Proposer } - return nil + return "" } -func (x *TransactionResponse) GetPayload() []byte { +func (x *BlockResponse) GetValidators() []*BlockResponse_Validator { if x != nil { - return x.Payload + return x.Validators } return nil } -func (x *TransactionResponse) GetTags() map[string]string { +func (x *BlockResponse) GetEvidence() *BlockResponse_Evidence { if x != nil { - return x.Tags + return x.Evidence } return nil } -func (x *TransactionResponse) GetCode() uint64 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *TransactionResponse) GetLog() string { +func (x *BlockResponse) GetMissed() []string { if x != nil { - return x.Log + return x.Missed } - return "" + return nil } -type TransactionRequest struct { +type MaxGasPriceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` } -func (x *TransactionRequest) Reset() { - *x = TransactionRequest{} +func (x *MaxGasPriceRequest) Reset() { + *x = MaxGasPriceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[26] + mi := &file_resources_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TransactionRequest) String() string { +func (x *MaxGasPriceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TransactionRequest) ProtoMessage() {} +func (*MaxGasPriceRequest) ProtoMessage() {} -func (x *TransactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[26] +func (x *MaxGasPriceRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2134,43 +1964,43 @@ func (x *TransactionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TransactionRequest.ProtoReflect.Descriptor instead. -func (*TransactionRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{26} +// Deprecated: Use MaxGasPriceRequest.ProtoReflect.Descriptor instead. +func (*MaxGasPriceRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{21} } -func (x *TransactionRequest) GetHash() string { +func (x *MaxGasPriceRequest) GetHeight() uint64 { if x != nil { - return x.Hash + return x.Height } - return "" + return 0 } -type TransactionsResponse struct { +type MaxGasPriceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Transactions []*TransactionResponse `protobuf:"bytes,3,rep,name=transactions,proto3" json:"transactions,omitempty"` + MaxGasPrice uint64 `protobuf:"varint,3,opt,name=max_gas_price,json=maxGasPrice,proto3" json:"max_gas_price,omitempty"` } -func (x *TransactionsResponse) Reset() { - *x = TransactionsResponse{} +func (x *MaxGasPriceResponse) Reset() { + *x = MaxGasPriceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[27] + mi := &file_resources_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TransactionsResponse) String() string { +func (x *MaxGasPriceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TransactionsResponse) ProtoMessage() {} +func (*MaxGasPriceResponse) ProtoMessage() {} -func (x *TransactionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[27] +func (x *MaxGasPriceResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2181,45 +2011,45 @@ func (x *TransactionsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TransactionsResponse.ProtoReflect.Descriptor instead. -func (*TransactionsResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{27} +// Deprecated: Use MaxGasPriceResponse.ProtoReflect.Descriptor instead. +func (*MaxGasPriceResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{22} } -func (x *TransactionsResponse) GetTransactions() []*TransactionResponse { +func (x *MaxGasPriceResponse) GetMaxGasPrice() uint64 { if x != nil { - return x.Transactions + return x.MaxGasPrice } - return nil + return 0 } -type TransactionsRequest struct { +type AddressRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` - Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` - PerPage int32 `protobuf:"varint,3,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Delegated bool `protobuf:"varint,4,opt,name=delegated,proto3" json:"delegated,omitempty"` } -func (x *TransactionsRequest) Reset() { - *x = TransactionsRequest{} +func (x *AddressRequest) Reset() { + *x = AddressRequest{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[28] + mi := &file_resources_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *TransactionsRequest) String() string { +func (x *AddressRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TransactionsRequest) ProtoMessage() {} +func (*AddressRequest) ProtoMessage() {} -func (x *TransactionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[28] +func (x *AddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2230,66 +2060,59 @@ func (x *TransactionsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TransactionsRequest.ProtoReflect.Descriptor instead. -func (*TransactionsRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{28} +// Deprecated: Use AddressRequest.ProtoReflect.Descriptor instead. +func (*AddressRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{23} } -func (x *TransactionsRequest) GetQuery() string { +func (x *AddressRequest) GetAddress() string { if x != nil { - return x.Query + return x.Address } return "" } -func (x *TransactionsRequest) GetPage() int32 { +func (x *AddressRequest) GetHeight() uint64 { if x != nil { - return x.Page + return x.Height } return 0 } -func (x *TransactionsRequest) GetPerPage() int32 { +func (x *AddressRequest) GetDelegated() bool { if x != nil { - return x.PerPage + return x.Delegated } - return 0 + return false } -type EstimateCoinBuyRequest struct { +type AddressBalance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Buy: - // *EstimateCoinBuyRequest_CoinIdToBuy - // *EstimateCoinBuyRequest_CoinToBuy - Buy isEstimateCoinBuyRequest_Buy `protobuf_oneof:"buy"` - // Types that are assignable to Sell: - // *EstimateCoinBuyRequest_CoinIdToSell - // *EstimateCoinBuyRequest_CoinToSell - Sell isEstimateCoinBuyRequest_Sell `protobuf_oneof:"sell"` - ValueToBuy string `protobuf:"bytes,3,opt,name=value_to_buy,json=valueToBuy,proto3" json:"value_to_buy,omitempty"` - Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + BipValue string `protobuf:"bytes,3,opt,name=bip_value,json=bipValue,proto3" json:"bip_value,omitempty"` } -func (x *EstimateCoinBuyRequest) Reset() { - *x = EstimateCoinBuyRequest{} +func (x *AddressBalance) Reset() { + *x = AddressBalance{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[29] + mi := &file_resources_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateCoinBuyRequest) String() string { +func (x *AddressBalance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateCoinBuyRequest) ProtoMessage() {} +func (*AddressBalance) ProtoMessage() {} -func (x *EstimateCoinBuyRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[29] +func (x *AddressBalance) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2300,125 +2123,3155 @@ func (x *EstimateCoinBuyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateCoinBuyRequest.ProtoReflect.Descriptor instead. -func (*EstimateCoinBuyRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{29} +// Deprecated: Use AddressBalance.ProtoReflect.Descriptor instead. +func (*AddressBalance) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{24} } -func (m *EstimateCoinBuyRequest) GetBuy() isEstimateCoinBuyRequest_Buy { - if m != nil { - return m.Buy +func (x *AddressBalance) GetCoin() *Coin { + if x != nil { + return x.Coin } return nil } -func (x *EstimateCoinBuyRequest) GetCoinIdToBuy() uint64 { - if x, ok := x.GetBuy().(*EstimateCoinBuyRequest_CoinIdToBuy); ok { - return x.CoinIdToBuy +func (x *AddressBalance) GetValue() string { + if x != nil { + return x.Value } - return 0 + return "" } -func (x *EstimateCoinBuyRequest) GetCoinToBuy() string { - if x, ok := x.GetBuy().(*EstimateCoinBuyRequest_CoinToBuy); ok { - return x.CoinToBuy +func (x *AddressBalance) GetBipValue() string { + if x != nil { + return x.BipValue } return "" } -func (m *EstimateCoinBuyRequest) GetSell() isEstimateCoinBuyRequest_Sell { - if m != nil { - return m.Sell - } - return nil +type AddressDelegatedBalance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + BipValue string `protobuf:"bytes,3,opt,name=bip_value,json=bipValue,proto3" json:"bip_value,omitempty"` + DelegateBipValue string `protobuf:"bytes,4,opt,name=delegate_bip_value,json=delegateBipValue,proto3" json:"delegate_bip_value,omitempty"` } -func (x *EstimateCoinBuyRequest) GetCoinIdToSell() uint64 { +func (x *AddressDelegatedBalance) Reset() { + *x = AddressDelegatedBalance{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressDelegatedBalance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressDelegatedBalance) ProtoMessage() {} + +func (x *AddressDelegatedBalance) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressDelegatedBalance.ProtoReflect.Descriptor instead. +func (*AddressDelegatedBalance) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{25} +} + +func (x *AddressDelegatedBalance) GetCoin() *Coin { + if x != nil { + return x.Coin + } + return nil +} + +func (x *AddressDelegatedBalance) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *AddressDelegatedBalance) GetBipValue() string { + if x != nil { + return x.BipValue + } + return "" +} + +func (x *AddressDelegatedBalance) GetDelegateBipValue() string { + if x != nil { + return x.DelegateBipValue + } + return "" +} + +type AddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Balance []*AddressBalance `protobuf:"bytes,1,rep,name=balance,proto3" json:"balance,omitempty"` + Delegated []*AddressDelegatedBalance `protobuf:"bytes,3,rep,name=delegated,proto3" json:"delegated,omitempty"` + Total []*AddressBalance `protobuf:"bytes,4,rep,name=total,proto3" json:"total,omitempty"` + TransactionCount uint64 `protobuf:"varint,2,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"` + BipValue string `protobuf:"bytes,5,opt,name=bip_value,json=bipValue,proto3" json:"bip_value,omitempty"` +} + +func (x *AddressResponse) Reset() { + *x = AddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressResponse) ProtoMessage() {} + +func (x *AddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressResponse.ProtoReflect.Descriptor instead. +func (*AddressResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{26} +} + +func (x *AddressResponse) GetBalance() []*AddressBalance { + if x != nil { + return x.Balance + } + return nil +} + +func (x *AddressResponse) GetDelegated() []*AddressDelegatedBalance { + if x != nil { + return x.Delegated + } + return nil +} + +func (x *AddressResponse) GetTotal() []*AddressBalance { + if x != nil { + return x.Total + } + return nil +} + +func (x *AddressResponse) GetTransactionCount() uint64 { + if x != nil { + return x.TransactionCount + } + return 0 +} + +func (x *AddressResponse) GetBipValue() string { + if x != nil { + return x.BipValue + } + return "" +} + +type AddressesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Delegated bool `protobuf:"varint,4,opt,name=delegated,proto3" json:"delegated,omitempty"` +} + +func (x *AddressesRequest) Reset() { + *x = AddressesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressesRequest) ProtoMessage() {} + +func (x *AddressesRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressesRequest.ProtoReflect.Descriptor instead. +func (*AddressesRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{27} +} + +func (x *AddressesRequest) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +func (x *AddressesRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *AddressesRequest) GetDelegated() bool { + if x != nil { + return x.Delegated + } + return false +} + +type AddressesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses map[string]*AddressesResponse_Result `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AddressesResponse) Reset() { + *x = AddressesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressesResponse) ProtoMessage() {} + +func (x *AddressesResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressesResponse.ProtoReflect.Descriptor instead. +func (*AddressesResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{28} +} + +func (x *AddressesResponse) GetAddresses() map[string]*AddressesResponse_Result { + if x != nil { + return x.Addresses + } + return nil +} + +type CandidateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Public key of a candidate + PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Blockchain state height for the current request. Optional, the last default state of the node is used + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + // Do not display a list of steaks. Note: used_slots, uniq_users, min_stake will be filled + NotShowStakes bool `protobuf:"varint,4,opt,name=not_show_stakes,json=notShowStakes,proto3" json:"not_show_stakes,omitempty"` +} + +func (x *CandidateRequest) Reset() { + *x = CandidateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CandidateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CandidateRequest) ProtoMessage() {} + +func (x *CandidateRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CandidateRequest.ProtoReflect.Descriptor instead. +func (*CandidateRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{29} +} + +func (x *CandidateRequest) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *CandidateRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *CandidateRequest) GetNotShowStakes() bool { + if x != nil { + return x.NotShowStakes + } + return false +} + +type CandidateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,14,opt,name=id,proto3" json:"id,omitempty"` + // Address where validator’s rewards go to. + RewardAddress string `protobuf:"bytes,1,opt,name=reward_address,json=rewardAddress,proto3" json:"reward_address,omitempty"` + // Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. It also enables the owner to edit the node by sending EditCandidate. + OwnerAddress string `protobuf:"bytes,10,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + // Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. + ControlAddress string `protobuf:"bytes,11,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` + // Total stake of a candidate + TotalStake string `protobuf:"bytes,2,opt,name=total_stake,json=totalStake,proto3" json:"total_stake,omitempty"` + // Public key of a candidate + PublicKey string `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + // Commission (from 0 to 100) from rewards which delegators will pay to validator + Commission uint64 `protobuf:"varint,4,opt,name=commission,proto3" json:"commission,omitempty"` + // Number of occupied steak slots. Note: filled in when request includes_stakes + UsedSlots *wrapperspb.UInt64Value `protobuf:"bytes,7,opt,name=used_slots,json=usedSlots,proto3" json:"used_slots,omitempty"` + // Number of unique wallets in steaks. Note: filled in when request includes_stakes + UniqUsers *wrapperspb.UInt64Value `protobuf:"bytes,8,opt,name=uniq_users,json=uniqUsers,proto3" json:"uniq_users,omitempty"` + // Smallest steak size. Note: filled in when request includes_stakes + MinStake *wrapperspb.StringValue `protobuf:"bytes,9,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` + // List of stakes. Note: filled in when request includes_stakes + Stakes []*CandidateResponse_Stake `protobuf:"bytes,5,rep,name=stakes,proto3" json:"stakes,omitempty"` + // Candidate status. Available values: offline = 1, online = 2 + Status uint64 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` + // Is a validator at the current height + Validator bool `protobuf:"varint,12,opt,name=validator,proto3" json:"validator,omitempty"` + JailedUntil uint64 `protobuf:"varint,13,opt,name=jailed_until,json=jailedUntil,proto3" json:"jailed_until,omitempty"` +} + +func (x *CandidateResponse) Reset() { + *x = CandidateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CandidateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CandidateResponse) ProtoMessage() {} + +func (x *CandidateResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CandidateResponse.ProtoReflect.Descriptor instead. +func (*CandidateResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{30} +} + +func (x *CandidateResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *CandidateResponse) GetRewardAddress() string { + if x != nil { + return x.RewardAddress + } + return "" +} + +func (x *CandidateResponse) GetOwnerAddress() string { + if x != nil { + return x.OwnerAddress + } + return "" +} + +func (x *CandidateResponse) GetControlAddress() string { + if x != nil { + return x.ControlAddress + } + return "" +} + +func (x *CandidateResponse) GetTotalStake() string { + if x != nil { + return x.TotalStake + } + return "" +} + +func (x *CandidateResponse) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *CandidateResponse) GetCommission() uint64 { + if x != nil { + return x.Commission + } + return 0 +} + +func (x *CandidateResponse) GetUsedSlots() *wrapperspb.UInt64Value { + if x != nil { + return x.UsedSlots + } + return nil +} + +func (x *CandidateResponse) GetUniqUsers() *wrapperspb.UInt64Value { + if x != nil { + return x.UniqUsers + } + return nil +} + +func (x *CandidateResponse) GetMinStake() *wrapperspb.StringValue { + if x != nil { + return x.MinStake + } + return nil +} + +func (x *CandidateResponse) GetStakes() []*CandidateResponse_Stake { + if x != nil { + return x.Stakes + } + return nil +} + +func (x *CandidateResponse) GetStatus() uint64 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *CandidateResponse) GetValidator() bool { + if x != nil { + return x.Validator + } + return false +} + +func (x *CandidateResponse) GetJailedUntil() uint64 { + if x != nil { + return x.JailedUntil + } + return 0 +} + +type CandidatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Blockchain state height for the current request. Optional, the last default state of the node is used + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + // Calculate field values used_slots, uniq_users, min_stake + IncludeStakes bool `protobuf:"varint,2,opt,name=include_stakes,json=includeStakes,proto3" json:"include_stakes,omitempty"` + // Do not display the list of stakes, the include_stakes flag is also required to display. Note: used_slots, uniq_users, min_stake will still be filled if include_stakes flag is used + NotShowStakes bool `protobuf:"varint,4,opt,name=not_show_stakes,json=notShowStakes,proto3" json:"not_show_stakes,omitempty"` + Status CandidatesRequest_CandidateStatus `protobuf:"varint,3,opt,name=status,proto3,enum=api_pb.CandidatesRequest_CandidateStatus" json:"status,omitempty"` +} + +func (x *CandidatesRequest) Reset() { + *x = CandidatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CandidatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CandidatesRequest) ProtoMessage() {} + +func (x *CandidatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CandidatesRequest.ProtoReflect.Descriptor instead. +func (*CandidatesRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{31} +} + +func (x *CandidatesRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *CandidatesRequest) GetIncludeStakes() bool { + if x != nil { + return x.IncludeStakes + } + return false +} + +func (x *CandidatesRequest) GetNotShowStakes() bool { + if x != nil { + return x.NotShowStakes + } + return false +} + +func (x *CandidatesRequest) GetStatus() CandidatesRequest_CandidateStatus { + if x != nil { + return x.Status + } + return CandidatesRequest_all +} + +type CandidatesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Candidates []*CandidateResponse `protobuf:"bytes,3,rep,name=candidates,proto3" json:"candidates,omitempty"` +} + +func (x *CandidatesResponse) Reset() { + *x = CandidatesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CandidatesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CandidatesResponse) ProtoMessage() {} + +func (x *CandidatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CandidatesResponse.ProtoReflect.Descriptor instead. +func (*CandidatesResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{32} +} + +func (x *CandidatesResponse) GetCandidates() []*CandidateResponse { + if x != nil { + return x.Candidates + } + return nil +} + +type CoinIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *CoinIdRequest) Reset() { + *x = CoinIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CoinIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoinIdRequest) ProtoMessage() {} + +func (x *CoinIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CoinIdRequest.ProtoReflect.Descriptor instead. +func (*CoinIdRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{33} +} + +func (x *CoinIdRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *CoinIdRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type CoinInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` +} + +func (x *CoinInfoRequest) Reset() { + *x = CoinInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CoinInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoinInfoRequest) ProtoMessage() {} + +func (x *CoinInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CoinInfoRequest.ProtoReflect.Descriptor instead. +func (*CoinInfoRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{34} +} + +func (x *CoinInfoRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *CoinInfoRequest) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +type CoinInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,6,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + Volume string `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"` + Crr uint64 `protobuf:"varint,4,opt,name=crr,proto3" json:"crr,omitempty"` + ReserveBalance string `protobuf:"bytes,5,opt,name=reserve_balance,json=reserveBalance,proto3" json:"reserve_balance,omitempty"` + MaxSupply string `protobuf:"bytes,8,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + OwnerAddress *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + Mintable bool `protobuf:"varint,9,opt,name=mintable,proto3" json:"mintable,omitempty"` + Burnable bool `protobuf:"varint,10,opt,name=burnable,proto3" json:"burnable,omitempty"` +} + +func (x *CoinInfoResponse) Reset() { + *x = CoinInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CoinInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoinInfoResponse) ProtoMessage() {} + +func (x *CoinInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CoinInfoResponse.ProtoReflect.Descriptor instead. +func (*CoinInfoResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{35} +} + +func (x *CoinInfoResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *CoinInfoResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CoinInfoResponse) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *CoinInfoResponse) GetVolume() string { + if x != nil { + return x.Volume + } + return "" +} + +func (x *CoinInfoResponse) GetCrr() uint64 { + if x != nil { + return x.Crr + } + return 0 +} + +func (x *CoinInfoResponse) GetReserveBalance() string { + if x != nil { + return x.ReserveBalance + } + return "" +} + +func (x *CoinInfoResponse) GetMaxSupply() string { + if x != nil { + return x.MaxSupply + } + return "" +} + +func (x *CoinInfoResponse) GetOwnerAddress() *wrapperspb.StringValue { + if x != nil { + return x.OwnerAddress + } + return nil +} + +func (x *CoinInfoResponse) GetMintable() bool { + if x != nil { + return x.Mintable + } + return false +} + +func (x *CoinInfoResponse) GetBurnable() bool { + if x != nil { + return x.Burnable + } + return false +} + +type SendTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code uint64 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Hash string `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` +} + +func (x *SendTransactionResponse) Reset() { + *x = SendTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendTransactionResponse) ProtoMessage() {} + +func (x *SendTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendTransactionResponse.ProtoReflect.Descriptor instead. +func (*SendTransactionResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{36} +} + +func (x *SendTransactionResponse) GetCode() uint64 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *SendTransactionResponse) GetLog() string { + if x != nil { + return x.Log + } + return "" +} + +func (x *SendTransactionResponse) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +type SendTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tx string `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` +} + +func (x *SendTransactionRequest) Reset() { + *x = SendTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendTransactionRequest) ProtoMessage() {} + +func (x *SendTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendTransactionRequest.ProtoReflect.Descriptor instead. +func (*SendTransactionRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{37} +} + +func (x *SendTransactionRequest) GetTx() string { + if x != nil { + return x.Tx + } + return "" +} + +type TransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + RawTx string `protobuf:"bytes,2,opt,name=raw_tx,json=rawTx,proto3" json:"raw_tx,omitempty"` + Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + Index uint64 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"` + From string `protobuf:"bytes,5,opt,name=from,proto3" json:"from,omitempty"` + Nonce uint64 `protobuf:"varint,6,opt,name=nonce,proto3" json:"nonce,omitempty"` + Gas uint64 `protobuf:"varint,7,opt,name=gas,proto3" json:"gas,omitempty"` + GasPrice uint64 `protobuf:"varint,8,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` + GasCoin *Coin `protobuf:"bytes,9,opt,name=gas_coin,json=gasCoin,proto3" json:"gas_coin,omitempty"` + TypeHex string `protobuf:"bytes,17,opt,name=type_hex,json=typeHex,proto3" json:"type_hex,omitempty"` + Type uint64 `protobuf:"varint,10,opt,name=type,proto3" json:"type,omitempty"` + Data *anypb.Any `protobuf:"bytes,11,opt,name=data,proto3" json:"data,omitempty"` + Payload []byte `protobuf:"bytes,12,opt,name=payload,proto3" json:"payload,omitempty"` + ServiceData []byte `protobuf:"bytes,16,opt,name=service_data,json=serviceData,proto3" json:"service_data,omitempty"` + Tags map[string]string `protobuf:"bytes,13,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Code uint64 `protobuf:"varint,14,opt,name=code,proto3" json:"code,omitempty"` + Log string `protobuf:"bytes,15,opt,name=log,proto3" json:"log,omitempty"` +} + +func (x *TransactionResponse) Reset() { + *x = TransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionResponse) ProtoMessage() {} + +func (x *TransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransactionResponse.ProtoReflect.Descriptor instead. +func (*TransactionResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{38} +} + +func (x *TransactionResponse) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *TransactionResponse) GetRawTx() string { + if x != nil { + return x.RawTx + } + return "" +} + +func (x *TransactionResponse) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *TransactionResponse) GetIndex() uint64 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *TransactionResponse) GetFrom() string { + if x != nil { + return x.From + } + return "" +} + +func (x *TransactionResponse) GetNonce() uint64 { + if x != nil { + return x.Nonce + } + return 0 +} + +func (x *TransactionResponse) GetGas() uint64 { + if x != nil { + return x.Gas + } + return 0 +} + +func (x *TransactionResponse) GetGasPrice() uint64 { + if x != nil { + return x.GasPrice + } + return 0 +} + +func (x *TransactionResponse) GetGasCoin() *Coin { + if x != nil { + return x.GasCoin + } + return nil +} + +func (x *TransactionResponse) GetTypeHex() string { + if x != nil { + return x.TypeHex + } + return "" +} + +func (x *TransactionResponse) GetType() uint64 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *TransactionResponse) GetData() *anypb.Any { + if x != nil { + return x.Data + } + return nil +} + +func (x *TransactionResponse) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil +} + +func (x *TransactionResponse) GetServiceData() []byte { + if x != nil { + return x.ServiceData + } + return nil +} + +func (x *TransactionResponse) GetTags() map[string]string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *TransactionResponse) GetCode() uint64 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *TransactionResponse) GetLog() string { + if x != nil { + return x.Log + } + return "" +} + +type TransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` +} + +func (x *TransactionRequest) Reset() { + *x = TransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionRequest) ProtoMessage() {} + +func (x *TransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransactionRequest.ProtoReflect.Descriptor instead. +func (*TransactionRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{39} +} + +func (x *TransactionRequest) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +type TransactionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transactions []*TransactionResponse `protobuf:"bytes,3,rep,name=transactions,proto3" json:"transactions,omitempty"` +} + +func (x *TransactionsResponse) Reset() { + *x = TransactionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionsResponse) ProtoMessage() {} + +func (x *TransactionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransactionsResponse.ProtoReflect.Descriptor instead. +func (*TransactionsResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{40} +} + +func (x *TransactionsResponse) GetTransactions() []*TransactionResponse { + if x != nil { + return x.Transactions + } + return nil +} + +type TransactionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` + PerPage int32 `protobuf:"varint,3,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"` +} + +func (x *TransactionsRequest) Reset() { + *x = TransactionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionsRequest) ProtoMessage() {} + +func (x *TransactionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransactionsRequest.ProtoReflect.Descriptor instead. +func (*TransactionsRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{41} +} + +func (x *TransactionsRequest) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +func (x *TransactionsRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *TransactionsRequest) GetPerPage() int32 { + if x != nil { + return x.PerPage + } + return 0 +} + +type EstimateCoinBuyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Buy: + // *EstimateCoinBuyRequest_CoinIdToBuy + // *EstimateCoinBuyRequest_CoinToBuy + Buy isEstimateCoinBuyRequest_Buy `protobuf_oneof:"buy"` + // Types that are assignable to Sell: + // *EstimateCoinBuyRequest_CoinIdToSell + // *EstimateCoinBuyRequest_CoinToSell + Sell isEstimateCoinBuyRequest_Sell `protobuf_oneof:"sell"` + ValueToBuy string `protobuf:"bytes,3,opt,name=value_to_buy,json=valueToBuy,proto3" json:"value_to_buy,omitempty"` + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + // Types that are assignable to Commission: + // *EstimateCoinBuyRequest_CoinIdCommission + // *EstimateCoinBuyRequest_CoinCommission + Commission isEstimateCoinBuyRequest_Commission `protobuf_oneof:"commission"` + SwapFrom SwapFrom `protobuf:"varint,8,opt,name=swap_from,json=swapFrom,proto3,enum=api_pb.SwapFrom" json:"swap_from,omitempty"` + Route []uint64 `protobuf:"varint,11,rep,packed,name=route,proto3" json:"route,omitempty"` +} + +func (x *EstimateCoinBuyRequest) Reset() { + *x = EstimateCoinBuyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCoinBuyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCoinBuyRequest) ProtoMessage() {} + +func (x *EstimateCoinBuyRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCoinBuyRequest.ProtoReflect.Descriptor instead. +func (*EstimateCoinBuyRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{42} +} + +func (m *EstimateCoinBuyRequest) GetBuy() isEstimateCoinBuyRequest_Buy { + if m != nil { + return m.Buy + } + return nil +} + +func (x *EstimateCoinBuyRequest) GetCoinIdToBuy() uint64 { + if x, ok := x.GetBuy().(*EstimateCoinBuyRequest_CoinIdToBuy); ok { + return x.CoinIdToBuy + } + return 0 +} + +func (x *EstimateCoinBuyRequest) GetCoinToBuy() string { + if x, ok := x.GetBuy().(*EstimateCoinBuyRequest_CoinToBuy); ok { + return x.CoinToBuy + } + return "" +} + +func (m *EstimateCoinBuyRequest) GetSell() isEstimateCoinBuyRequest_Sell { + if m != nil { + return m.Sell + } + return nil +} + +func (x *EstimateCoinBuyRequest) GetCoinIdToSell() uint64 { if x, ok := x.GetSell().(*EstimateCoinBuyRequest_CoinIdToSell); ok { return x.CoinIdToSell } - return 0 + return 0 +} + +func (x *EstimateCoinBuyRequest) GetCoinToSell() string { + if x, ok := x.GetSell().(*EstimateCoinBuyRequest_CoinToSell); ok { + return x.CoinToSell + } + return "" +} + +func (x *EstimateCoinBuyRequest) GetValueToBuy() string { + if x != nil { + return x.ValueToBuy + } + return "" +} + +func (x *EstimateCoinBuyRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (m *EstimateCoinBuyRequest) GetCommission() isEstimateCoinBuyRequest_Commission { + if m != nil { + return m.Commission + } + return nil +} + +func (x *EstimateCoinBuyRequest) GetCoinIdCommission() uint64 { + if x, ok := x.GetCommission().(*EstimateCoinBuyRequest_CoinIdCommission); ok { + return x.CoinIdCommission + } + return 0 +} + +func (x *EstimateCoinBuyRequest) GetCoinCommission() string { + if x, ok := x.GetCommission().(*EstimateCoinBuyRequest_CoinCommission); ok { + return x.CoinCommission + } + return "" +} + +func (x *EstimateCoinBuyRequest) GetSwapFrom() SwapFrom { + if x != nil { + return x.SwapFrom + } + return SwapFrom_optimal +} + +func (x *EstimateCoinBuyRequest) GetRoute() []uint64 { + if x != nil { + return x.Route + } + return nil +} + +type isEstimateCoinBuyRequest_Buy interface { + isEstimateCoinBuyRequest_Buy() +} + +type EstimateCoinBuyRequest_CoinIdToBuy struct { + CoinIdToBuy uint64 `protobuf:"varint,1,opt,name=coin_id_to_buy,json=coinIdToBuy,proto3,oneof"` +} + +type EstimateCoinBuyRequest_CoinToBuy struct { + CoinToBuy string `protobuf:"bytes,5,opt,name=coin_to_buy,json=coinToBuy,proto3,oneof"` +} + +func (*EstimateCoinBuyRequest_CoinIdToBuy) isEstimateCoinBuyRequest_Buy() {} + +func (*EstimateCoinBuyRequest_CoinToBuy) isEstimateCoinBuyRequest_Buy() {} + +type isEstimateCoinBuyRequest_Sell interface { + isEstimateCoinBuyRequest_Sell() +} + +type EstimateCoinBuyRequest_CoinIdToSell struct { + CoinIdToSell uint64 `protobuf:"varint,2,opt,name=coin_id_to_sell,json=coinIdToSell,proto3,oneof"` +} + +type EstimateCoinBuyRequest_CoinToSell struct { + CoinToSell string `protobuf:"bytes,6,opt,name=coin_to_sell,json=coinToSell,proto3,oneof"` +} + +func (*EstimateCoinBuyRequest_CoinIdToSell) isEstimateCoinBuyRequest_Sell() {} + +func (*EstimateCoinBuyRequest_CoinToSell) isEstimateCoinBuyRequest_Sell() {} + +type isEstimateCoinBuyRequest_Commission interface { + isEstimateCoinBuyRequest_Commission() +} + +type EstimateCoinBuyRequest_CoinIdCommission struct { + CoinIdCommission uint64 `protobuf:"varint,9,opt,name=coin_id_commission,json=coinIdCommission,proto3,oneof"` +} + +type EstimateCoinBuyRequest_CoinCommission struct { + CoinCommission string `protobuf:"bytes,10,opt,name=coin_commission,json=coinCommission,proto3,oneof"` +} + +func (*EstimateCoinBuyRequest_CoinIdCommission) isEstimateCoinBuyRequest_Commission() {} + +func (*EstimateCoinBuyRequest_CoinCommission) isEstimateCoinBuyRequest_Commission() {} + +type EstimateCoinBuyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WillPay string `protobuf:"bytes,1,opt,name=will_pay,json=willPay,proto3" json:"will_pay,omitempty"` + Commission string `protobuf:"bytes,2,opt,name=commission,proto3" json:"commission,omitempty"` + SwapFrom SwapFrom `protobuf:"varint,3,opt,name=swap_from,json=swapFrom,proto3,enum=api_pb.SwapFrom" json:"swap_from,omitempty"` +} + +func (x *EstimateCoinBuyResponse) Reset() { + *x = EstimateCoinBuyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCoinBuyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCoinBuyResponse) ProtoMessage() {} + +func (x *EstimateCoinBuyResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCoinBuyResponse.ProtoReflect.Descriptor instead. +func (*EstimateCoinBuyResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{43} +} + +func (x *EstimateCoinBuyResponse) GetWillPay() string { + if x != nil { + return x.WillPay + } + return "" +} + +func (x *EstimateCoinBuyResponse) GetCommission() string { + if x != nil { + return x.Commission + } + return "" +} + +func (x *EstimateCoinBuyResponse) GetSwapFrom() SwapFrom { + if x != nil { + return x.SwapFrom + } + return SwapFrom_optimal +} + +type EstimateCoinSellRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Buy: + // *EstimateCoinSellRequest_CoinIdToBuy + // *EstimateCoinSellRequest_CoinToBuy + Buy isEstimateCoinSellRequest_Buy `protobuf_oneof:"buy"` + // Types that are assignable to Sell: + // *EstimateCoinSellRequest_CoinIdToSell + // *EstimateCoinSellRequest_CoinToSell + Sell isEstimateCoinSellRequest_Sell `protobuf_oneof:"sell"` + ValueToSell string `protobuf:"bytes,3,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + // Types that are assignable to Commission: + // *EstimateCoinSellRequest_CoinIdCommission + // *EstimateCoinSellRequest_CoinCommission + Commission isEstimateCoinSellRequest_Commission `protobuf_oneof:"commission"` + SwapFrom SwapFrom `protobuf:"varint,8,opt,name=swap_from,json=swapFrom,proto3,enum=api_pb.SwapFrom" json:"swap_from,omitempty"` + Route []uint64 `protobuf:"varint,11,rep,packed,name=route,proto3" json:"route,omitempty"` +} + +func (x *EstimateCoinSellRequest) Reset() { + *x = EstimateCoinSellRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCoinSellRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCoinSellRequest) ProtoMessage() {} + +func (x *EstimateCoinSellRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCoinSellRequest.ProtoReflect.Descriptor instead. +func (*EstimateCoinSellRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{44} +} + +func (m *EstimateCoinSellRequest) GetBuy() isEstimateCoinSellRequest_Buy { + if m != nil { + return m.Buy + } + return nil +} + +func (x *EstimateCoinSellRequest) GetCoinIdToBuy() uint64 { + if x, ok := x.GetBuy().(*EstimateCoinSellRequest_CoinIdToBuy); ok { + return x.CoinIdToBuy + } + return 0 +} + +func (x *EstimateCoinSellRequest) GetCoinToBuy() string { + if x, ok := x.GetBuy().(*EstimateCoinSellRequest_CoinToBuy); ok { + return x.CoinToBuy + } + return "" +} + +func (m *EstimateCoinSellRequest) GetSell() isEstimateCoinSellRequest_Sell { + if m != nil { + return m.Sell + } + return nil +} + +func (x *EstimateCoinSellRequest) GetCoinIdToSell() uint64 { + if x, ok := x.GetSell().(*EstimateCoinSellRequest_CoinIdToSell); ok { + return x.CoinIdToSell + } + return 0 +} + +func (x *EstimateCoinSellRequest) GetCoinToSell() string { + if x, ok := x.GetSell().(*EstimateCoinSellRequest_CoinToSell); ok { + return x.CoinToSell + } + return "" +} + +func (x *EstimateCoinSellRequest) GetValueToSell() string { + if x != nil { + return x.ValueToSell + } + return "" +} + +func (x *EstimateCoinSellRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (m *EstimateCoinSellRequest) GetCommission() isEstimateCoinSellRequest_Commission { + if m != nil { + return m.Commission + } + return nil +} + +func (x *EstimateCoinSellRequest) GetCoinIdCommission() uint64 { + if x, ok := x.GetCommission().(*EstimateCoinSellRequest_CoinIdCommission); ok { + return x.CoinIdCommission + } + return 0 +} + +func (x *EstimateCoinSellRequest) GetCoinCommission() string { + if x, ok := x.GetCommission().(*EstimateCoinSellRequest_CoinCommission); ok { + return x.CoinCommission + } + return "" +} + +func (x *EstimateCoinSellRequest) GetSwapFrom() SwapFrom { + if x != nil { + return x.SwapFrom + } + return SwapFrom_optimal +} + +func (x *EstimateCoinSellRequest) GetRoute() []uint64 { + if x != nil { + return x.Route + } + return nil +} + +type isEstimateCoinSellRequest_Buy interface { + isEstimateCoinSellRequest_Buy() +} + +type EstimateCoinSellRequest_CoinIdToBuy struct { + CoinIdToBuy uint64 `protobuf:"varint,1,opt,name=coin_id_to_buy,json=coinIdToBuy,proto3,oneof"` +} + +type EstimateCoinSellRequest_CoinToBuy struct { + CoinToBuy string `protobuf:"bytes,5,opt,name=coin_to_buy,json=coinToBuy,proto3,oneof"` +} + +func (*EstimateCoinSellRequest_CoinIdToBuy) isEstimateCoinSellRequest_Buy() {} + +func (*EstimateCoinSellRequest_CoinToBuy) isEstimateCoinSellRequest_Buy() {} + +type isEstimateCoinSellRequest_Sell interface { + isEstimateCoinSellRequest_Sell() +} + +type EstimateCoinSellRequest_CoinIdToSell struct { + CoinIdToSell uint64 `protobuf:"varint,2,opt,name=coin_id_to_sell,json=coinIdToSell,proto3,oneof"` +} + +type EstimateCoinSellRequest_CoinToSell struct { + CoinToSell string `protobuf:"bytes,6,opt,name=coin_to_sell,json=coinToSell,proto3,oneof"` +} + +func (*EstimateCoinSellRequest_CoinIdToSell) isEstimateCoinSellRequest_Sell() {} + +func (*EstimateCoinSellRequest_CoinToSell) isEstimateCoinSellRequest_Sell() {} + +type isEstimateCoinSellRequest_Commission interface { + isEstimateCoinSellRequest_Commission() +} + +type EstimateCoinSellRequest_CoinIdCommission struct { + CoinIdCommission uint64 `protobuf:"varint,9,opt,name=coin_id_commission,json=coinIdCommission,proto3,oneof"` +} + +type EstimateCoinSellRequest_CoinCommission struct { + CoinCommission string `protobuf:"bytes,10,opt,name=coin_commission,json=coinCommission,proto3,oneof"` +} + +func (*EstimateCoinSellRequest_CoinIdCommission) isEstimateCoinSellRequest_Commission() {} + +func (*EstimateCoinSellRequest_CoinCommission) isEstimateCoinSellRequest_Commission() {} + +type EstimateCoinSellResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WillGet string `protobuf:"bytes,1,opt,name=will_get,json=willGet,proto3" json:"will_get,omitempty"` + Commission string `protobuf:"bytes,2,opt,name=commission,proto3" json:"commission,omitempty"` + SwapFrom SwapFrom `protobuf:"varint,3,opt,name=swap_from,json=swapFrom,proto3,enum=api_pb.SwapFrom" json:"swap_from,omitempty"` +} + +func (x *EstimateCoinSellResponse) Reset() { + *x = EstimateCoinSellResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCoinSellResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCoinSellResponse) ProtoMessage() {} + +func (x *EstimateCoinSellResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCoinSellResponse.ProtoReflect.Descriptor instead. +func (*EstimateCoinSellResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{45} +} + +func (x *EstimateCoinSellResponse) GetWillGet() string { + if x != nil { + return x.WillGet + } + return "" +} + +func (x *EstimateCoinSellResponse) GetCommission() string { + if x != nil { + return x.Commission + } + return "" +} + +func (x *EstimateCoinSellResponse) GetSwapFrom() SwapFrom { + if x != nil { + return x.SwapFrom + } + return SwapFrom_optimal +} + +type EstimateCoinSellAllRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Buy: + // *EstimateCoinSellAllRequest_CoinIdToBuy + // *EstimateCoinSellAllRequest_CoinToBuy + Buy isEstimateCoinSellAllRequest_Buy `protobuf_oneof:"buy"` + // Types that are assignable to Sell: + // *EstimateCoinSellAllRequest_CoinIdToSell + // *EstimateCoinSellAllRequest_CoinToSell + Sell isEstimateCoinSellAllRequest_Sell `protobuf_oneof:"sell"` + ValueToSell string `protobuf:"bytes,3,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` + GasPrice uint64 `protobuf:"varint,4,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` + Height uint64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` + SwapFrom SwapFrom `protobuf:"varint,8,opt,name=swap_from,json=swapFrom,proto3,enum=api_pb.SwapFrom" json:"swap_from,omitempty"` + Route []uint64 `protobuf:"varint,11,rep,packed,name=route,proto3" json:"route,omitempty"` +} + +func (x *EstimateCoinSellAllRequest) Reset() { + *x = EstimateCoinSellAllRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCoinSellAllRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCoinSellAllRequest) ProtoMessage() {} + +func (x *EstimateCoinSellAllRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCoinSellAllRequest.ProtoReflect.Descriptor instead. +func (*EstimateCoinSellAllRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{46} +} + +func (m *EstimateCoinSellAllRequest) GetBuy() isEstimateCoinSellAllRequest_Buy { + if m != nil { + return m.Buy + } + return nil +} + +func (x *EstimateCoinSellAllRequest) GetCoinIdToBuy() uint64 { + if x, ok := x.GetBuy().(*EstimateCoinSellAllRequest_CoinIdToBuy); ok { + return x.CoinIdToBuy + } + return 0 +} + +func (x *EstimateCoinSellAllRequest) GetCoinToBuy() string { + if x, ok := x.GetBuy().(*EstimateCoinSellAllRequest_CoinToBuy); ok { + return x.CoinToBuy + } + return "" +} + +func (m *EstimateCoinSellAllRequest) GetSell() isEstimateCoinSellAllRequest_Sell { + if m != nil { + return m.Sell + } + return nil +} + +func (x *EstimateCoinSellAllRequest) GetCoinIdToSell() uint64 { + if x, ok := x.GetSell().(*EstimateCoinSellAllRequest_CoinIdToSell); ok { + return x.CoinIdToSell + } + return 0 +} + +func (x *EstimateCoinSellAllRequest) GetCoinToSell() string { + if x, ok := x.GetSell().(*EstimateCoinSellAllRequest_CoinToSell); ok { + return x.CoinToSell + } + return "" +} + +func (x *EstimateCoinSellAllRequest) GetValueToSell() string { + if x != nil { + return x.ValueToSell + } + return "" +} + +func (x *EstimateCoinSellAllRequest) GetGasPrice() uint64 { + if x != nil { + return x.GasPrice + } + return 0 +} + +func (x *EstimateCoinSellAllRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *EstimateCoinSellAllRequest) GetSwapFrom() SwapFrom { + if x != nil { + return x.SwapFrom + } + return SwapFrom_optimal +} + +func (x *EstimateCoinSellAllRequest) GetRoute() []uint64 { + if x != nil { + return x.Route + } + return nil +} + +type isEstimateCoinSellAllRequest_Buy interface { + isEstimateCoinSellAllRequest_Buy() +} + +type EstimateCoinSellAllRequest_CoinIdToBuy struct { + CoinIdToBuy uint64 `protobuf:"varint,1,opt,name=coin_id_to_buy,json=coinIdToBuy,proto3,oneof"` +} + +type EstimateCoinSellAllRequest_CoinToBuy struct { + CoinToBuy string `protobuf:"bytes,7,opt,name=coin_to_buy,json=coinToBuy,proto3,oneof"` +} + +func (*EstimateCoinSellAllRequest_CoinIdToBuy) isEstimateCoinSellAllRequest_Buy() {} + +func (*EstimateCoinSellAllRequest_CoinToBuy) isEstimateCoinSellAllRequest_Buy() {} + +type isEstimateCoinSellAllRequest_Sell interface { + isEstimateCoinSellAllRequest_Sell() +} + +type EstimateCoinSellAllRequest_CoinIdToSell struct { + CoinIdToSell uint64 `protobuf:"varint,2,opt,name=coin_id_to_sell,json=coinIdToSell,proto3,oneof"` +} + +type EstimateCoinSellAllRequest_CoinToSell struct { + CoinToSell string `protobuf:"bytes,6,opt,name=coin_to_sell,json=coinToSell,proto3,oneof"` +} + +func (*EstimateCoinSellAllRequest_CoinIdToSell) isEstimateCoinSellAllRequest_Sell() {} + +func (*EstimateCoinSellAllRequest_CoinToSell) isEstimateCoinSellAllRequest_Sell() {} + +type EstimateCoinSellAllResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WillGet string `protobuf:"bytes,1,opt,name=will_get,json=willGet,proto3" json:"will_get,omitempty"` + SwapFrom SwapFrom `protobuf:"varint,2,opt,name=swap_from,json=swapFrom,proto3,enum=api_pb.SwapFrom" json:"swap_from,omitempty"` +} + +func (x *EstimateCoinSellAllResponse) Reset() { + *x = EstimateCoinSellAllResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateCoinSellAllResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateCoinSellAllResponse) ProtoMessage() {} + +func (x *EstimateCoinSellAllResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateCoinSellAllResponse.ProtoReflect.Descriptor instead. +func (*EstimateCoinSellAllResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{47} +} + +func (x *EstimateCoinSellAllResponse) GetWillGet() string { + if x != nil { + return x.WillGet + } + return "" +} + +func (x *EstimateCoinSellAllResponse) GetSwapFrom() SwapFrom { + if x != nil { + return x.SwapFrom + } + return SwapFrom_optimal +} + +type EstimateTxCommissionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tx string `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *EstimateTxCommissionRequest) Reset() { + *x = EstimateTxCommissionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateTxCommissionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateTxCommissionRequest) ProtoMessage() {} + +func (x *EstimateTxCommissionRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateTxCommissionRequest.ProtoReflect.Descriptor instead. +func (*EstimateTxCommissionRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{48} +} + +func (x *EstimateTxCommissionRequest) GetTx() string { + if x != nil { + return x.Tx + } + return "" +} + +func (x *EstimateTxCommissionRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type EstimateTxCommissionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Commission string `protobuf:"bytes,1,opt,name=commission,proto3" json:"commission,omitempty"` +} + +func (x *EstimateTxCommissionResponse) Reset() { + *x = EstimateTxCommissionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateTxCommissionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateTxCommissionResponse) ProtoMessage() {} + +func (x *EstimateTxCommissionResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EstimateTxCommissionResponse.ProtoReflect.Descriptor instead. +func (*EstimateTxCommissionResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{49} +} + +func (x *EstimateTxCommissionResponse) GetCommission() string { + if x != nil { + return x.Commission + } + return "" +} + +type EventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + // Array of public keys of validators and wallet addresses of delegators for filtering + Search []string `protobuf:"bytes,2,rep,name=search,proto3" json:"search,omitempty"` +} + +func (x *EventsRequest) Reset() { + *x = EventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventsRequest) ProtoMessage() {} + +func (x *EventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventsRequest.ProtoReflect.Descriptor instead. +func (*EventsRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{50} +} + +func (x *EventsRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *EventsRequest) GetSearch() []string { + if x != nil { + return x.Search + } + return nil +} + +type EventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Events []*structpb.Struct `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *EventsResponse) Reset() { + *x = EventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventsResponse) ProtoMessage() {} + +func (x *EventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventsResponse.ProtoReflect.Descriptor instead. +func (*EventsResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{51} +} + +func (x *EventsResponse) GetEvents() []*structpb.Struct { + if x != nil { + return x.Events + } + return nil +} + +type MissedBlocksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *MissedBlocksRequest) Reset() { + *x = MissedBlocksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MissedBlocksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MissedBlocksRequest) ProtoMessage() {} + +func (x *MissedBlocksRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MissedBlocksRequest.ProtoReflect.Descriptor instead. +func (*MissedBlocksRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{52} +} + +func (x *MissedBlocksRequest) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *MissedBlocksRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type MissedBlocksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MissedBlocks string `protobuf:"bytes,1,opt,name=missed_blocks,json=missedBlocks,proto3" json:"missed_blocks,omitempty"` + MissedBlocksCount int64 `protobuf:"varint,2,opt,name=missed_blocks_count,json=missedBlocksCount,proto3" json:"missed_blocks_count,omitempty"` +} + +func (x *MissedBlocksResponse) Reset() { + *x = MissedBlocksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MissedBlocksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MissedBlocksResponse) ProtoMessage() {} + +func (x *MissedBlocksResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MissedBlocksResponse.ProtoReflect.Descriptor instead. +func (*MissedBlocksResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{53} +} + +func (x *MissedBlocksResponse) GetMissedBlocks() string { + if x != nil { + return x.MissedBlocks + } + return "" +} + +func (x *MissedBlocksResponse) GetMissedBlocksCount() int64 { + if x != nil { + return x.MissedBlocksCount + } + return 0 +} + +type UnconfirmedTxsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TransactionCount uint64 `protobuf:"varint,1,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"` + TotalTransactions uint64 `protobuf:"varint,2,opt,name=total_transactions,json=totalTransactions,proto3" json:"total_transactions,omitempty"` + TotalBytes uint64 `protobuf:"varint,3,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` + Transactions []string `protobuf:"bytes,4,rep,name=transactions,proto3" json:"transactions,omitempty"` +} + +func (x *UnconfirmedTxsResponse) Reset() { + *x = UnconfirmedTxsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnconfirmedTxsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnconfirmedTxsResponse) ProtoMessage() {} + +func (x *UnconfirmedTxsResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnconfirmedTxsResponse.ProtoReflect.Descriptor instead. +func (*UnconfirmedTxsResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{54} +} + +func (x *UnconfirmedTxsResponse) GetTransactionCount() uint64 { + if x != nil { + return x.TransactionCount + } + return 0 +} + +func (x *UnconfirmedTxsResponse) GetTotalTransactions() uint64 { + if x != nil { + return x.TotalTransactions + } + return 0 +} + +func (x *UnconfirmedTxsResponse) GetTotalBytes() uint64 { + if x != nil { + return x.TotalBytes + } + return 0 +} + +func (x *UnconfirmedTxsResponse) GetTransactions() []string { + if x != nil { + return x.Transactions + } + return nil +} + +type UnconfirmedTxsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *UnconfirmedTxsRequest) Reset() { + *x = UnconfirmedTxsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnconfirmedTxsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnconfirmedTxsRequest) ProtoMessage() {} + +func (x *UnconfirmedTxsRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnconfirmedTxsRequest.ProtoReflect.Descriptor instead. +func (*UnconfirmedTxsRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{55} +} + +func (x *UnconfirmedTxsRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +type ValidatorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *ValidatorsRequest) Reset() { + *x = ValidatorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidatorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatorsRequest) ProtoMessage() {} + +func (x *ValidatorsRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidatorsRequest.ProtoReflect.Descriptor instead. +func (*ValidatorsRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{56} +} + +func (x *ValidatorsRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type ValidatorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Validators []*ValidatorsResponse_Result `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators,omitempty"` +} + +func (x *ValidatorsResponse) Reset() { + *x = ValidatorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidatorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatorsResponse) ProtoMessage() {} + +func (x *ValidatorsResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidatorsResponse.ProtoReflect.Descriptor instead. +func (*ValidatorsResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{57} +} + +func (x *ValidatorsResponse) GetValidators() []*ValidatorsResponse_Result { + if x != nil { + return x.Validators + } + return nil +} + +type SubscribeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` +} + +func (x *SubscribeRequest) Reset() { + *x = SubscribeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeRequest) ProtoMessage() {} + +func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. +func (*SubscribeRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{58} +} + +func (x *SubscribeRequest) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +type SubscribeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + Data *structpb.Struct `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Events []*SubscribeResponse_Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *SubscribeResponse) Reset() { + *x = SubscribeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeResponse) ProtoMessage() {} + +func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. +func (*SubscribeResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{59} +} + +func (x *SubscribeResponse) GetQuery() string { + if x != nil { + return x.Query + } + return "" +} + +func (x *SubscribeResponse) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +func (x *SubscribeResponse) GetEvents() []*SubscribeResponse_Event { + if x != nil { + return x.Events + } + return nil +} + +type HaltsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *HaltsRequest) Reset() { + *x = HaltsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HaltsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HaltsRequest) ProtoMessage() {} + +func (x *HaltsRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HaltsRequest.ProtoReflect.Descriptor instead. +func (*HaltsRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{60} +} + +func (x *HaltsRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type HaltsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PublicKeys []string `protobuf:"bytes,1,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"` +} + +func (x *HaltsResponse) Reset() { + *x = HaltsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HaltsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HaltsResponse) ProtoMessage() {} + +func (x *HaltsResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HaltsResponse.ProtoReflect.Descriptor instead. +func (*HaltsResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{61} +} + +func (x *HaltsResponse) GetPublicKeys() []string { + if x != nil { + return x.PublicKeys + } + return nil +} + +type FrozenRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + CoinId *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=coin_id,json=coinId,proto3" json:"coin_id,omitempty"` + Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *FrozenRequest) Reset() { + *x = FrozenRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FrozenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FrozenRequest) ProtoMessage() {} + +func (x *FrozenRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FrozenRequest.ProtoReflect.Descriptor instead. +func (*FrozenRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{62} +} + +func (x *FrozenRequest) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *FrozenRequest) GetCoinId() *wrapperspb.UInt64Value { + if x != nil { + return x.CoinId + } + return nil +} + +func (x *FrozenRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type FrozenResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Frozen []*FrozenResponse_Frozen `protobuf:"bytes,1,rep,name=frozen,proto3" json:"frozen,omitempty"` +} + +func (x *FrozenResponse) Reset() { + *x = FrozenResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FrozenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FrozenResponse) ProtoMessage() {} + +func (x *FrozenResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FrozenResponse.ProtoReflect.Descriptor instead. +func (*FrozenResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{63} +} + +func (x *FrozenResponse) GetFrozen() []*FrozenResponse_Frozen { + if x != nil { + return x.Frozen + } + return nil +} + +type WaitListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *WaitListRequest) Reset() { + *x = WaitListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitListRequest) ProtoMessage() {} + +func (x *WaitListRequest) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitListRequest.ProtoReflect.Descriptor instead. +func (*WaitListRequest) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{64} +} + +func (x *WaitListRequest) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *WaitListRequest) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *WaitListRequest) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type WaitListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*WaitListResponse_Wait `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *WaitListResponse) Reset() { + *x = WaitListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitListResponse) ProtoMessage() {} + +func (x *WaitListResponse) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitListResponse.ProtoReflect.Descriptor instead. +func (*WaitListResponse) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{65} +} + +func (x *WaitListResponse) GetList() []*WaitListResponse_Wait { + if x != nil { + return x.List + } + return nil +} + +type SendData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` + To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *SendData) Reset() { + *x = SendData{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendData) ProtoMessage() {} + +func (x *SendData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendData.ProtoReflect.Descriptor instead. +func (*SendData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{66} +} + +func (x *SendData) GetCoin() *Coin { + if x != nil { + return x.Coin + } + return nil +} + +func (x *SendData) GetTo() string { + if x != nil { + return x.To + } + return "" +} + +func (x *SendData) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type SellCoinData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CoinToSell *Coin `protobuf:"bytes,1,opt,name=coin_to_sell,json=coinToSell,proto3" json:"coin_to_sell,omitempty"` + ValueToSell string `protobuf:"bytes,2,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` + CoinToBuy *Coin `protobuf:"bytes,3,opt,name=coin_to_buy,json=coinToBuy,proto3" json:"coin_to_buy,omitempty"` + MinimumValueToBuy string `protobuf:"bytes,4,opt,name=minimum_value_to_buy,json=minimumValueToBuy,proto3" json:"minimum_value_to_buy,omitempty"` +} + +func (x *SellCoinData) Reset() { + *x = SellCoinData{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SellCoinData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SellCoinData) ProtoMessage() {} + +func (x *SellCoinData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (x *EstimateCoinBuyRequest) GetCoinToSell() string { - if x, ok := x.GetSell().(*EstimateCoinBuyRequest_CoinToSell); ok { +// Deprecated: Use SellCoinData.ProtoReflect.Descriptor instead. +func (*SellCoinData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{67} +} + +func (x *SellCoinData) GetCoinToSell() *Coin { + if x != nil { return x.CoinToSell } - return "" + return nil } -func (x *EstimateCoinBuyRequest) GetValueToBuy() string { +func (x *SellCoinData) GetValueToSell() string { if x != nil { - return x.ValueToBuy + return x.ValueToSell } return "" } -func (x *EstimateCoinBuyRequest) GetHeight() uint64 { +func (x *SellCoinData) GetCoinToBuy() *Coin { if x != nil { - return x.Height + return x.CoinToBuy } - return 0 -} - -type isEstimateCoinBuyRequest_Buy interface { - isEstimateCoinBuyRequest_Buy() -} - -type EstimateCoinBuyRequest_CoinIdToBuy struct { - CoinIdToBuy uint64 `protobuf:"varint,1,opt,name=coin_id_to_buy,json=coinIdToBuy,proto3,oneof"` -} - -type EstimateCoinBuyRequest_CoinToBuy struct { - CoinToBuy string `protobuf:"bytes,5,opt,name=coin_to_buy,json=coinToBuy,proto3,oneof"` -} - -func (*EstimateCoinBuyRequest_CoinIdToBuy) isEstimateCoinBuyRequest_Buy() {} - -func (*EstimateCoinBuyRequest_CoinToBuy) isEstimateCoinBuyRequest_Buy() {} - -type isEstimateCoinBuyRequest_Sell interface { - isEstimateCoinBuyRequest_Sell() -} - -type EstimateCoinBuyRequest_CoinIdToSell struct { - CoinIdToSell uint64 `protobuf:"varint,2,opt,name=coin_id_to_sell,json=coinIdToSell,proto3,oneof"` + return nil } -type EstimateCoinBuyRequest_CoinToSell struct { - CoinToSell string `protobuf:"bytes,6,opt,name=coin_to_sell,json=coinToSell,proto3,oneof"` +func (x *SellCoinData) GetMinimumValueToBuy() string { + if x != nil { + return x.MinimumValueToBuy + } + return "" } -func (*EstimateCoinBuyRequest_CoinIdToSell) isEstimateCoinBuyRequest_Sell() {} - -func (*EstimateCoinBuyRequest_CoinToSell) isEstimateCoinBuyRequest_Sell() {} - -type EstimateCoinBuyResponse struct { +type SellAllCoinData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WillPay string `protobuf:"bytes,1,opt,name=will_pay,json=willPay,proto3" json:"will_pay,omitempty"` - Commission string `protobuf:"bytes,2,opt,name=commission,proto3" json:"commission,omitempty"` + CoinToSell *Coin `protobuf:"bytes,1,opt,name=coin_to_sell,json=coinToSell,proto3" json:"coin_to_sell,omitempty"` + CoinToBuy *Coin `protobuf:"bytes,2,opt,name=coin_to_buy,json=coinToBuy,proto3" json:"coin_to_buy,omitempty"` + MinimumValueToBuy string `protobuf:"bytes,3,opt,name=minimum_value_to_buy,json=minimumValueToBuy,proto3" json:"minimum_value_to_buy,omitempty"` } -func (x *EstimateCoinBuyResponse) Reset() { - *x = EstimateCoinBuyResponse{} +func (x *SellAllCoinData) Reset() { + *x = SellAllCoinData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[30] + mi := &file_resources_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateCoinBuyResponse) String() string { +func (x *SellAllCoinData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateCoinBuyResponse) ProtoMessage() {} +func (*SellAllCoinData) ProtoMessage() {} -func (x *EstimateCoinBuyResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[30] +func (x *SellAllCoinData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2429,59 +5282,60 @@ func (x *EstimateCoinBuyResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateCoinBuyResponse.ProtoReflect.Descriptor instead. -func (*EstimateCoinBuyResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{30} +// Deprecated: Use SellAllCoinData.ProtoReflect.Descriptor instead. +func (*SellAllCoinData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{68} } -func (x *EstimateCoinBuyResponse) GetWillPay() string { +func (x *SellAllCoinData) GetCoinToSell() *Coin { if x != nil { - return x.WillPay + return x.CoinToSell } - return "" + return nil } -func (x *EstimateCoinBuyResponse) GetCommission() string { +func (x *SellAllCoinData) GetCoinToBuy() *Coin { if x != nil { - return x.Commission + return x.CoinToBuy + } + return nil +} + +func (x *SellAllCoinData) GetMinimumValueToBuy() string { + if x != nil { + return x.MinimumValueToBuy } return "" } -type EstimateCoinSellRequest struct { +type BuyCoinData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Buy: - // *EstimateCoinSellRequest_CoinIdToBuy - // *EstimateCoinSellRequest_CoinToBuy - Buy isEstimateCoinSellRequest_Buy `protobuf_oneof:"buy"` - // Types that are assignable to Sell: - // *EstimateCoinSellRequest_CoinIdToSell - // *EstimateCoinSellRequest_CoinToSell - Sell isEstimateCoinSellRequest_Sell `protobuf_oneof:"sell"` - ValueToSell string `protobuf:"bytes,3,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` - Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + CoinToBuy *Coin `protobuf:"bytes,1,opt,name=coin_to_buy,json=coinToBuy,proto3" json:"coin_to_buy,omitempty"` + ValueToBuy string `protobuf:"bytes,2,opt,name=value_to_buy,json=valueToBuy,proto3" json:"value_to_buy,omitempty"` + CoinToSell *Coin `protobuf:"bytes,3,opt,name=coin_to_sell,json=coinToSell,proto3" json:"coin_to_sell,omitempty"` + MaximumValueToSell string `protobuf:"bytes,4,opt,name=maximum_value_to_sell,json=maximumValueToSell,proto3" json:"maximum_value_to_sell,omitempty"` } -func (x *EstimateCoinSellRequest) Reset() { - *x = EstimateCoinSellRequest{} +func (x *BuyCoinData) Reset() { + *x = BuyCoinData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[31] + mi := &file_resources_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateCoinSellRequest) String() string { +func (x *BuyCoinData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateCoinSellRequest) ProtoMessage() {} +func (*BuyCoinData) ProtoMessage() {} -func (x *EstimateCoinSellRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[31] +func (x *BuyCoinData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2492,125 +5346,155 @@ func (x *EstimateCoinSellRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateCoinSellRequest.ProtoReflect.Descriptor instead. -func (*EstimateCoinSellRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{31} +// Deprecated: Use BuyCoinData.ProtoReflect.Descriptor instead. +func (*BuyCoinData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{69} } -func (m *EstimateCoinSellRequest) GetBuy() isEstimateCoinSellRequest_Buy { - if m != nil { - return m.Buy +func (x *BuyCoinData) GetCoinToBuy() *Coin { + if x != nil { + return x.CoinToBuy } return nil } -func (x *EstimateCoinSellRequest) GetCoinIdToBuy() uint64 { - if x, ok := x.GetBuy().(*EstimateCoinSellRequest_CoinIdToBuy); ok { - return x.CoinIdToBuy - } - return 0 -} - -func (x *EstimateCoinSellRequest) GetCoinToBuy() string { - if x, ok := x.GetBuy().(*EstimateCoinSellRequest_CoinToBuy); ok { - return x.CoinToBuy +func (x *BuyCoinData) GetValueToBuy() string { + if x != nil { + return x.ValueToBuy } return "" } -func (m *EstimateCoinSellRequest) GetSell() isEstimateCoinSellRequest_Sell { - if m != nil { - return m.Sell +func (x *BuyCoinData) GetCoinToSell() *Coin { + if x != nil { + return x.CoinToSell } return nil } -func (x *EstimateCoinSellRequest) GetCoinIdToSell() uint64 { - if x, ok := x.GetSell().(*EstimateCoinSellRequest_CoinIdToSell); ok { - return x.CoinIdToSell - } - return 0 -} - -func (x *EstimateCoinSellRequest) GetCoinToSell() string { - if x, ok := x.GetSell().(*EstimateCoinSellRequest_CoinToSell); ok { - return x.CoinToSell +func (x *BuyCoinData) GetMaximumValueToSell() string { + if x != nil { + return x.MaximumValueToSell } return "" } -func (x *EstimateCoinSellRequest) GetValueToSell() string { - if x != nil { - return x.ValueToSell - } - return "" +type CreateCoinData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + InitialAmount string `protobuf:"bytes,3,opt,name=initial_amount,json=initialAmount,proto3" json:"initial_amount,omitempty"` + InitialReserve string `protobuf:"bytes,4,opt,name=initial_reserve,json=initialReserve,proto3" json:"initial_reserve,omitempty"` + ConstantReserveRatio uint64 `protobuf:"varint,5,opt,name=constant_reserve_ratio,json=constantReserveRatio,proto3" json:"constant_reserve_ratio,omitempty"` + MaxSupply string `protobuf:"bytes,6,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` } -func (x *EstimateCoinSellRequest) GetHeight() uint64 { - if x != nil { - return x.Height +func (x *CreateCoinData) Reset() { + *x = CreateCoinData{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type isEstimateCoinSellRequest_Buy interface { - isEstimateCoinSellRequest_Buy() +func (x *CreateCoinData) String() string { + return protoimpl.X.MessageStringOf(x) } -type EstimateCoinSellRequest_CoinIdToBuy struct { - CoinIdToBuy uint64 `protobuf:"varint,1,opt,name=coin_id_to_buy,json=coinIdToBuy,proto3,oneof"` +func (*CreateCoinData) ProtoMessage() {} + +func (x *CreateCoinData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -type EstimateCoinSellRequest_CoinToBuy struct { - CoinToBuy string `protobuf:"bytes,5,opt,name=coin_to_buy,json=coinToBuy,proto3,oneof"` +// Deprecated: Use CreateCoinData.ProtoReflect.Descriptor instead. +func (*CreateCoinData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{70} } -func (*EstimateCoinSellRequest_CoinIdToBuy) isEstimateCoinSellRequest_Buy() {} +func (x *CreateCoinData) GetName() string { + if x != nil { + return x.Name + } + return "" +} -func (*EstimateCoinSellRequest_CoinToBuy) isEstimateCoinSellRequest_Buy() {} +func (x *CreateCoinData) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} -type isEstimateCoinSellRequest_Sell interface { - isEstimateCoinSellRequest_Sell() +func (x *CreateCoinData) GetInitialAmount() string { + if x != nil { + return x.InitialAmount + } + return "" } -type EstimateCoinSellRequest_CoinIdToSell struct { - CoinIdToSell uint64 `protobuf:"varint,2,opt,name=coin_id_to_sell,json=coinIdToSell,proto3,oneof"` +func (x *CreateCoinData) GetInitialReserve() string { + if x != nil { + return x.InitialReserve + } + return "" } -type EstimateCoinSellRequest_CoinToSell struct { - CoinToSell string `protobuf:"bytes,6,opt,name=coin_to_sell,json=coinToSell,proto3,oneof"` +func (x *CreateCoinData) GetConstantReserveRatio() uint64 { + if x != nil { + return x.ConstantReserveRatio + } + return 0 } -func (*EstimateCoinSellRequest_CoinIdToSell) isEstimateCoinSellRequest_Sell() {} - -func (*EstimateCoinSellRequest_CoinToSell) isEstimateCoinSellRequest_Sell() {} +func (x *CreateCoinData) GetMaxSupply() string { + if x != nil { + return x.MaxSupply + } + return "" +} -type EstimateCoinSellResponse struct { +type DeclareCandidacyData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WillGet string `protobuf:"bytes,1,opt,name=will_get,json=willGet,proto3" json:"will_get,omitempty"` - Commission string `protobuf:"bytes,2,opt,name=commission,proto3" json:"commission,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + PubKey string `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Commission uint64 `protobuf:"varint,3,opt,name=commission,proto3" json:"commission,omitempty"` + Coin *Coin `protobuf:"bytes,4,opt,name=coin,proto3" json:"coin,omitempty"` + Stake string `protobuf:"bytes,5,opt,name=stake,proto3" json:"stake,omitempty"` } -func (x *EstimateCoinSellResponse) Reset() { - *x = EstimateCoinSellResponse{} +func (x *DeclareCandidacyData) Reset() { + *x = DeclareCandidacyData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[32] + mi := &file_resources_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateCoinSellResponse) String() string { +func (x *DeclareCandidacyData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateCoinSellResponse) ProtoMessage() {} +func (*DeclareCandidacyData) ProtoMessage() {} -func (x *EstimateCoinSellResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[32] +func (x *DeclareCandidacyData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2621,60 +5505,73 @@ func (x *EstimateCoinSellResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateCoinSellResponse.ProtoReflect.Descriptor instead. -func (*EstimateCoinSellResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{32} +// Deprecated: Use DeclareCandidacyData.ProtoReflect.Descriptor instead. +func (*DeclareCandidacyData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{71} } -func (x *EstimateCoinSellResponse) GetWillGet() string { +func (x *DeclareCandidacyData) GetAddress() string { if x != nil { - return x.WillGet + return x.Address } return "" } -func (x *EstimateCoinSellResponse) GetCommission() string { +func (x *DeclareCandidacyData) GetPubKey() string { + if x != nil { + return x.PubKey + } + return "" +} + +func (x *DeclareCandidacyData) GetCommission() uint64 { if x != nil { return x.Commission } + return 0 +} + +func (x *DeclareCandidacyData) GetCoin() *Coin { + if x != nil { + return x.Coin + } + return nil +} + +func (x *DeclareCandidacyData) GetStake() string { + if x != nil { + return x.Stake + } return "" } -type EstimateCoinSellAllRequest struct { +type DelegateData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Buy: - // *EstimateCoinSellAllRequest_CoinIdToBuy - // *EstimateCoinSellAllRequest_CoinToBuy - Buy isEstimateCoinSellAllRequest_Buy `protobuf_oneof:"buy"` - // Types that are assignable to Sell: - // *EstimateCoinSellAllRequest_CoinIdToSell - // *EstimateCoinSellAllRequest_CoinToSell - Sell isEstimateCoinSellAllRequest_Sell `protobuf_oneof:"sell"` - ValueToSell string `protobuf:"bytes,3,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` - GasPrice uint64 `protobuf:"varint,4,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` - Height uint64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Coin *Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (x *EstimateCoinSellAllRequest) Reset() { - *x = EstimateCoinSellAllRequest{} +func (x *DelegateData) Reset() { + *x = DelegateData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[33] + mi := &file_resources_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateCoinSellAllRequest) String() string { +func (x *DelegateData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateCoinSellAllRequest) ProtoMessage() {} +func (*DelegateData) ProtoMessage() {} -func (x *EstimateCoinSellAllRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[33] +func (x *DelegateData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2685,131 +5582,121 @@ func (x *EstimateCoinSellAllRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateCoinSellAllRequest.ProtoReflect.Descriptor instead. -func (*EstimateCoinSellAllRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{33} +// Deprecated: Use DelegateData.ProtoReflect.Descriptor instead. +func (*DelegateData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{72} } -func (m *EstimateCoinSellAllRequest) GetBuy() isEstimateCoinSellAllRequest_Buy { - if m != nil { - return m.Buy +func (x *DelegateData) GetPubKey() string { + if x != nil { + return x.PubKey } - return nil + return "" } -func (x *EstimateCoinSellAllRequest) GetCoinIdToBuy() uint64 { - if x, ok := x.GetBuy().(*EstimateCoinSellAllRequest_CoinIdToBuy); ok { - return x.CoinIdToBuy +func (x *DelegateData) GetCoin() *Coin { + if x != nil { + return x.Coin } - return 0 + return nil } -func (x *EstimateCoinSellAllRequest) GetCoinToBuy() string { - if x, ok := x.GetBuy().(*EstimateCoinSellAllRequest_CoinToBuy); ok { - return x.CoinToBuy +func (x *DelegateData) GetValue() string { + if x != nil { + return x.Value } return "" } -func (m *EstimateCoinSellAllRequest) GetSell() isEstimateCoinSellAllRequest_Sell { - if m != nil { - return m.Sell - } - return nil +type UnbondData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Coin *Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } -func (x *EstimateCoinSellAllRequest) GetCoinIdToSell() uint64 { - if x, ok := x.GetSell().(*EstimateCoinSellAllRequest_CoinIdToSell); ok { - return x.CoinIdToSell +func (x *UnbondData) Reset() { + *x = UnbondData{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *EstimateCoinSellAllRequest) GetCoinToSell() string { - if x, ok := x.GetSell().(*EstimateCoinSellAllRequest_CoinToSell); ok { - return x.CoinToSell +func (x *UnbondData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnbondData) ProtoMessage() {} + +func (x *UnbondData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *EstimateCoinSellAllRequest) GetValueToSell() string { +// Deprecated: Use UnbondData.ProtoReflect.Descriptor instead. +func (*UnbondData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{73} +} + +func (x *UnbondData) GetPubKey() string { if x != nil { - return x.ValueToSell + return x.PubKey } return "" } -func (x *EstimateCoinSellAllRequest) GetGasPrice() uint64 { +func (x *UnbondData) GetCoin() *Coin { if x != nil { - return x.GasPrice + return x.Coin } - return 0 + return nil } -func (x *EstimateCoinSellAllRequest) GetHeight() uint64 { +func (x *UnbondData) GetValue() string { if x != nil { - return x.Height + return x.Value } - return 0 -} - -type isEstimateCoinSellAllRequest_Buy interface { - isEstimateCoinSellAllRequest_Buy() -} - -type EstimateCoinSellAllRequest_CoinIdToBuy struct { - CoinIdToBuy uint64 `protobuf:"varint,1,opt,name=coin_id_to_buy,json=coinIdToBuy,proto3,oneof"` -} - -type EstimateCoinSellAllRequest_CoinToBuy struct { - CoinToBuy string `protobuf:"bytes,7,opt,name=coin_to_buy,json=coinToBuy,proto3,oneof"` -} - -func (*EstimateCoinSellAllRequest_CoinIdToBuy) isEstimateCoinSellAllRequest_Buy() {} - -func (*EstimateCoinSellAllRequest_CoinToBuy) isEstimateCoinSellAllRequest_Buy() {} - -type isEstimateCoinSellAllRequest_Sell interface { - isEstimateCoinSellAllRequest_Sell() -} - -type EstimateCoinSellAllRequest_CoinIdToSell struct { - CoinIdToSell uint64 `protobuf:"varint,2,opt,name=coin_id_to_sell,json=coinIdToSell,proto3,oneof"` -} - -type EstimateCoinSellAllRequest_CoinToSell struct { - CoinToSell string `protobuf:"bytes,6,opt,name=coin_to_sell,json=coinToSell,proto3,oneof"` + return "" } -func (*EstimateCoinSellAllRequest_CoinIdToSell) isEstimateCoinSellAllRequest_Sell() {} - -func (*EstimateCoinSellAllRequest_CoinToSell) isEstimateCoinSellAllRequest_Sell() {} - -type EstimateCoinSellAllResponse struct { +type RedeemCheckData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WillGet string `protobuf:"bytes,1,opt,name=will_get,json=willGet,proto3" json:"will_get,omitempty"` + RawCheck string `protobuf:"bytes,1,opt,name=raw_check,json=rawCheck,proto3" json:"raw_check,omitempty"` + Proof string `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` } -func (x *EstimateCoinSellAllResponse) Reset() { - *x = EstimateCoinSellAllResponse{} +func (x *RedeemCheckData) Reset() { + *x = RedeemCheckData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[34] + mi := &file_resources_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateCoinSellAllResponse) String() string { +func (x *RedeemCheckData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateCoinSellAllResponse) ProtoMessage() {} +func (*RedeemCheckData) ProtoMessage() {} -func (x *EstimateCoinSellAllResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[34] +func (x *RedeemCheckData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2820,43 +5707,50 @@ func (x *EstimateCoinSellAllResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateCoinSellAllResponse.ProtoReflect.Descriptor instead. -func (*EstimateCoinSellAllResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{34} +// Deprecated: Use RedeemCheckData.ProtoReflect.Descriptor instead. +func (*RedeemCheckData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{74} } -func (x *EstimateCoinSellAllResponse) GetWillGet() string { +func (x *RedeemCheckData) GetRawCheck() string { if x != nil { - return x.WillGet + return x.RawCheck + } + return "" +} + +func (x *RedeemCheckData) GetProof() string { + if x != nil { + return x.Proof } return "" } -type EstimateTxCommissionResponse struct { +type SetCandidateOnData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Commission string `protobuf:"bytes,1,opt,name=commission,proto3" json:"commission,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` } -func (x *EstimateTxCommissionResponse) Reset() { - *x = EstimateTxCommissionResponse{} +func (x *SetCandidateOnData) Reset() { + *x = SetCandidateOnData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[35] + mi := &file_resources_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateTxCommissionResponse) String() string { +func (x *SetCandidateOnData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateTxCommissionResponse) ProtoMessage() {} +func (*SetCandidateOnData) ProtoMessage() {} -func (x *EstimateTxCommissionResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[35] +func (x *SetCandidateOnData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2867,44 +5761,43 @@ func (x *EstimateTxCommissionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateTxCommissionResponse.ProtoReflect.Descriptor instead. -func (*EstimateTxCommissionResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{35} +// Deprecated: Use SetCandidateOnData.ProtoReflect.Descriptor instead. +func (*SetCandidateOnData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{75} } -func (x *EstimateTxCommissionResponse) GetCommission() string { +func (x *SetCandidateOnData) GetPubKey() string { if x != nil { - return x.Commission + return x.PubKey } return "" } -type EstimateTxCommissionRequest struct { +type SetCandidateOffData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Tx string `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` } -func (x *EstimateTxCommissionRequest) Reset() { - *x = EstimateTxCommissionRequest{} +func (x *SetCandidateOffData) Reset() { + *x = SetCandidateOffData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[36] + mi := &file_resources_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EstimateTxCommissionRequest) String() string { +func (x *SetCandidateOffData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EstimateTxCommissionRequest) ProtoMessage() {} +func (*SetCandidateOffData) ProtoMessage() {} -func (x *EstimateTxCommissionRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[36] +func (x *SetCandidateOffData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2915,52 +5808,45 @@ func (x *EstimateTxCommissionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EstimateTxCommissionRequest.ProtoReflect.Descriptor instead. -func (*EstimateTxCommissionRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{36} +// Deprecated: Use SetCandidateOffData.ProtoReflect.Descriptor instead. +func (*SetCandidateOffData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{76} } -func (x *EstimateTxCommissionRequest) GetTx() string { +func (x *SetCandidateOffData) GetPubKey() string { if x != nil { - return x.Tx + return x.PubKey } return "" } -func (x *EstimateTxCommissionRequest) GetHeight() uint64 { - if x != nil { - return x.Height - } - return 0 -} - -type EventsRequest struct { +type CreateMultisigData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - // Array of public keys of validators and wallet addresses of validators for filtering - Search []string `protobuf:"bytes,2,rep,name=search,proto3" json:"search,omitempty"` + Threshold uint64 `protobuf:"varint,1,opt,name=threshold,proto3" json:"threshold,omitempty"` + Weights []uint64 `protobuf:"varint,2,rep,packed,name=weights,proto3" json:"weights,omitempty"` + Addresses []string `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"` } -func (x *EventsRequest) Reset() { - *x = EventsRequest{} +func (x *CreateMultisigData) Reset() { + *x = CreateMultisigData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[37] + mi := &file_resources_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventsRequest) String() string { +func (x *CreateMultisigData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsRequest) ProtoMessage() {} +func (*CreateMultisigData) ProtoMessage() {} -func (x *EventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[37] +func (x *CreateMultisigData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2971,50 +5857,57 @@ func (x *EventsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsRequest.ProtoReflect.Descriptor instead. -func (*EventsRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{37} +// Deprecated: Use CreateMultisigData.ProtoReflect.Descriptor instead. +func (*CreateMultisigData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{77} } -func (x *EventsRequest) GetHeight() uint64 { +func (x *CreateMultisigData) GetThreshold() uint64 { if x != nil { - return x.Height + return x.Threshold } return 0 } -func (x *EventsRequest) GetSearch() []string { +func (x *CreateMultisigData) GetWeights() []uint64 { if x != nil { - return x.Search + return x.Weights } return nil } -type EventsResponse struct { +func (x *CreateMultisigData) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type MultiSendData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Events []*structpb.Struct `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + List []*SendData `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` } -func (x *EventsResponse) Reset() { - *x = EventsResponse{} +func (x *MultiSendData) Reset() { + *x = MultiSendData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[38] + mi := &file_resources_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventsResponse) String() string { +func (x *MultiSendData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventsResponse) ProtoMessage() {} +func (*MultiSendData) ProtoMessage() {} -func (x *EventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[38] +func (x *MultiSendData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3025,44 +5918,46 @@ func (x *EventsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventsResponse.ProtoReflect.Descriptor instead. -func (*EventsResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{38} +// Deprecated: Use MultiSendData.ProtoReflect.Descriptor instead. +func (*MultiSendData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{78} } -func (x *EventsResponse) GetEvents() []*structpb.Struct { +func (x *MultiSendData) GetList() []*SendData { if x != nil { - return x.Events + return x.List } return nil } -type MissedBlocksRequest struct { +type EditCandidateData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + RewardAddress string `protobuf:"bytes,3,opt,name=reward_address,json=rewardAddress,proto3" json:"reward_address,omitempty"` + OwnerAddress string `protobuf:"bytes,4,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + ControlAddress string `protobuf:"bytes,5,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` } -func (x *MissedBlocksRequest) Reset() { - *x = MissedBlocksRequest{} +func (x *EditCandidateData) Reset() { + *x = EditCandidateData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[39] + mi := &file_resources_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MissedBlocksRequest) String() string { +func (x *EditCandidateData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MissedBlocksRequest) ProtoMessage() {} +func (*EditCandidateData) ProtoMessage() {} -func (x *MissedBlocksRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[39] +func (x *EditCandidateData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3073,51 +5968,65 @@ func (x *MissedBlocksRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MissedBlocksRequest.ProtoReflect.Descriptor instead. -func (*MissedBlocksRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{39} +// Deprecated: Use EditCandidateData.ProtoReflect.Descriptor instead. +func (*EditCandidateData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{79} } -func (x *MissedBlocksRequest) GetPublicKey() string { +func (x *EditCandidateData) GetPubKey() string { if x != nil { - return x.PublicKey + return x.PubKey } return "" } -func (x *MissedBlocksRequest) GetHeight() uint64 { +func (x *EditCandidateData) GetRewardAddress() string { if x != nil { - return x.Height + return x.RewardAddress } - return 0 + return "" } -type MissedBlocksResponse struct { +func (x *EditCandidateData) GetOwnerAddress() string { + if x != nil { + return x.OwnerAddress + } + return "" +} + +func (x *EditCandidateData) GetControlAddress() string { + if x != nil { + return x.ControlAddress + } + return "" +} + +type SetHaltBlockData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MissedBlocks string `protobuf:"bytes,1,opt,name=missed_blocks,json=missedBlocks,proto3" json:"missed_blocks,omitempty"` - MissedBlocksCount int64 `protobuf:"varint,2,opt,name=missed_blocks_count,json=missedBlocksCount,proto3" json:"missed_blocks_count,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } -func (x *MissedBlocksResponse) Reset() { - *x = MissedBlocksResponse{} +func (x *SetHaltBlockData) Reset() { + *x = SetHaltBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[40] + mi := &file_resources_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MissedBlocksResponse) String() string { +func (x *SetHaltBlockData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MissedBlocksResponse) ProtoMessage() {} +func (*SetHaltBlockData) ProtoMessage() {} -func (x *MissedBlocksResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[40] +func (x *SetHaltBlockData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3128,53 +6037,55 @@ func (x *MissedBlocksResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MissedBlocksResponse.ProtoReflect.Descriptor instead. -func (*MissedBlocksResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{40} +// Deprecated: Use SetHaltBlockData.ProtoReflect.Descriptor instead. +func (*SetHaltBlockData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{80} } -func (x *MissedBlocksResponse) GetMissedBlocks() string { +func (x *SetHaltBlockData) GetPubKey() string { if x != nil { - return x.MissedBlocks + return x.PubKey } return "" } -func (x *MissedBlocksResponse) GetMissedBlocksCount() int64 { +func (x *SetHaltBlockData) GetHeight() uint64 { if x != nil { - return x.MissedBlocksCount + return x.Height } return 0 } -type UnconfirmedTxsResponse struct { +type RecreateCoinData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TransactionCount uint64 `protobuf:"varint,1,opt,name=transaction_count,json=transactionCount,proto3" json:"transaction_count,omitempty"` - TotalTransactions uint64 `protobuf:"varint,2,opt,name=total_transactions,json=totalTransactions,proto3" json:"total_transactions,omitempty"` - TotalBytes uint64 `protobuf:"varint,3,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` - Transactions []string `protobuf:"bytes,4,rep,name=transactions,proto3" json:"transactions,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + InitialAmount string `protobuf:"bytes,3,opt,name=initial_amount,json=initialAmount,proto3" json:"initial_amount,omitempty"` + InitialReserve string `protobuf:"bytes,4,opt,name=initial_reserve,json=initialReserve,proto3" json:"initial_reserve,omitempty"` + ConstantReserveRatio uint64 `protobuf:"varint,5,opt,name=constant_reserve_ratio,json=constantReserveRatio,proto3" json:"constant_reserve_ratio,omitempty"` + MaxSupply string `protobuf:"bytes,6,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` } -func (x *UnconfirmedTxsResponse) Reset() { - *x = UnconfirmedTxsResponse{} +func (x *RecreateCoinData) Reset() { + *x = RecreateCoinData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[41] + mi := &file_resources_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UnconfirmedTxsResponse) String() string { +func (x *RecreateCoinData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnconfirmedTxsResponse) ProtoMessage() {} +func (*RecreateCoinData) ProtoMessage() {} -func (x *UnconfirmedTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[41] +func (x *RecreateCoinData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3185,64 +6096,79 @@ func (x *UnconfirmedTxsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnconfirmedTxsResponse.ProtoReflect.Descriptor instead. -func (*UnconfirmedTxsResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{41} +// Deprecated: Use RecreateCoinData.ProtoReflect.Descriptor instead. +func (*RecreateCoinData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{81} +} + +func (x *RecreateCoinData) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RecreateCoinData) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" } -func (x *UnconfirmedTxsResponse) GetTransactionCount() uint64 { +func (x *RecreateCoinData) GetInitialAmount() string { if x != nil { - return x.TransactionCount + return x.InitialAmount } - return 0 + return "" } -func (x *UnconfirmedTxsResponse) GetTotalTransactions() uint64 { +func (x *RecreateCoinData) GetInitialReserve() string { if x != nil { - return x.TotalTransactions + return x.InitialReserve } - return 0 + return "" } -func (x *UnconfirmedTxsResponse) GetTotalBytes() uint64 { +func (x *RecreateCoinData) GetConstantReserveRatio() uint64 { if x != nil { - return x.TotalBytes + return x.ConstantReserveRatio } return 0 } -func (x *UnconfirmedTxsResponse) GetTransactions() []string { +func (x *RecreateCoinData) GetMaxSupply() string { if x != nil { - return x.Transactions + return x.MaxSupply } - return nil + return "" } -type UnconfirmedTxsRequest struct { +type EditCoinOwnerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` + Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` + NewOwner string `protobuf:"bytes,2,opt,name=new_owner,json=newOwner,proto3" json:"new_owner,omitempty"` } -func (x *UnconfirmedTxsRequest) Reset() { - *x = UnconfirmedTxsRequest{} +func (x *EditCoinOwnerData) Reset() { + *x = EditCoinOwnerData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[42] + mi := &file_resources_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UnconfirmedTxsRequest) String() string { +func (x *EditCoinOwnerData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UnconfirmedTxsRequest) ProtoMessage() {} +func (*EditCoinOwnerData) ProtoMessage() {} -func (x *UnconfirmedTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[42] +func (x *EditCoinOwnerData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3253,43 +6179,52 @@ func (x *UnconfirmedTxsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UnconfirmedTxsRequest.ProtoReflect.Descriptor instead. -func (*UnconfirmedTxsRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{42} +// Deprecated: Use EditCoinOwnerData.ProtoReflect.Descriptor instead. +func (*EditCoinOwnerData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{82} } -func (x *UnconfirmedTxsRequest) GetLimit() int32 { +func (x *EditCoinOwnerData) GetSymbol() string { if x != nil { - return x.Limit + return x.Symbol } - return 0 + return "" } -type ValidatorsRequest struct { +func (x *EditCoinOwnerData) GetNewOwner() string { + if x != nil { + return x.NewOwner + } + return "" +} + +type EditMultisigData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Threshold uint64 `protobuf:"varint,1,opt,name=threshold,proto3" json:"threshold,omitempty"` + Weights []uint64 `protobuf:"varint,2,rep,packed,name=weights,proto3" json:"weights,omitempty"` + Addresses []string `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"` } -func (x *ValidatorsRequest) Reset() { - *x = ValidatorsRequest{} +func (x *EditMultisigData) Reset() { + *x = EditMultisigData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[43] + mi := &file_resources_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ValidatorsRequest) String() string { +func (x *EditMultisigData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ValidatorsRequest) ProtoMessage() {} +func (*EditMultisigData) ProtoMessage() {} -func (x *ValidatorsRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[43] +func (x *EditMultisigData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3300,43 +6235,58 @@ func (x *ValidatorsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ValidatorsRequest.ProtoReflect.Descriptor instead. -func (*ValidatorsRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{43} +// Deprecated: Use EditMultisigData.ProtoReflect.Descriptor instead. +func (*EditMultisigData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{83} } -func (x *ValidatorsRequest) GetHeight() uint64 { +func (x *EditMultisigData) GetThreshold() uint64 { if x != nil { - return x.Height + return x.Threshold } return 0 } -type ValidatorsResponse struct { +func (x *EditMultisigData) GetWeights() []uint64 { + if x != nil { + return x.Weights + } + return nil +} + +func (x *EditMultisigData) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type EditCandidatePublicKeyData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Validators []*ValidatorsResponse_Result `protobuf:"bytes,3,rep,name=validators,proto3" json:"validators,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + NewPubKey string `protobuf:"bytes,2,opt,name=new_pub_key,json=newPubKey,proto3" json:"new_pub_key,omitempty"` } -func (x *ValidatorsResponse) Reset() { - *x = ValidatorsResponse{} +func (x *EditCandidatePublicKeyData) Reset() { + *x = EditCandidatePublicKeyData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[44] + mi := &file_resources_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ValidatorsResponse) String() string { +func (x *EditCandidatePublicKeyData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ValidatorsResponse) ProtoMessage() {} +func (*EditCandidatePublicKeyData) ProtoMessage() {} -func (x *ValidatorsResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[44] +func (x *EditCandidatePublicKeyData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3347,43 +6297,53 @@ func (x *ValidatorsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ValidatorsResponse.ProtoReflect.Descriptor instead. -func (*ValidatorsResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{44} +// Deprecated: Use EditCandidatePublicKeyData.ProtoReflect.Descriptor instead. +func (*EditCandidatePublicKeyData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{84} } -func (x *ValidatorsResponse) GetValidators() []*ValidatorsResponse_Result { +func (x *EditCandidatePublicKeyData) GetPubKey() string { if x != nil { - return x.Validators + return x.PubKey } - return nil + return "" } -type SubscribeRequest struct { +func (x *EditCandidatePublicKeyData) GetNewPubKey() string { + if x != nil { + return x.NewPubKey + } + return "" +} + +type CreateSwapPoolData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + Coin0 *Coin `protobuf:"bytes,1,opt,name=coin0,proto3" json:"coin0,omitempty"` + Coin1 *Coin `protobuf:"bytes,2,opt,name=coin1,proto3" json:"coin1,omitempty"` + Volume0 string `protobuf:"bytes,3,opt,name=volume0,proto3" json:"volume0,omitempty"` + Volume1 string `protobuf:"bytes,4,opt,name=volume1,proto3" json:"volume1,omitempty"` } -func (x *SubscribeRequest) Reset() { - *x = SubscribeRequest{} +func (x *CreateSwapPoolData) Reset() { + *x = CreateSwapPoolData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[45] + mi := &file_resources_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SubscribeRequest) String() string { +func (x *CreateSwapPoolData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SubscribeRequest) ProtoMessage() {} +func (*CreateSwapPoolData) ProtoMessage() {} -func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[45] +func (x *CreateSwapPoolData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3394,45 +6354,67 @@ func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. -func (*SubscribeRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{45} +// Deprecated: Use CreateSwapPoolData.ProtoReflect.Descriptor instead. +func (*CreateSwapPoolData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{85} } -func (x *SubscribeRequest) GetQuery() string { +func (x *CreateSwapPoolData) GetCoin0() *Coin { if x != nil { - return x.Query + return x.Coin0 + } + return nil +} + +func (x *CreateSwapPoolData) GetCoin1() *Coin { + if x != nil { + return x.Coin1 + } + return nil +} + +func (x *CreateSwapPoolData) GetVolume0() string { + if x != nil { + return x.Volume0 } return "" } -type SubscribeResponse struct { +func (x *CreateSwapPoolData) GetVolume1() string { + if x != nil { + return x.Volume1 + } + return "" +} + +type AddLiquidityData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` - Data *structpb.Struct `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - Events []*SubscribeResponse_Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` + Coin0 *Coin `protobuf:"bytes,1,opt,name=coin0,proto3" json:"coin0,omitempty"` + Coin1 *Coin `protobuf:"bytes,2,opt,name=coin1,proto3" json:"coin1,omitempty"` + Volume0 string `protobuf:"bytes,3,opt,name=volume0,proto3" json:"volume0,omitempty"` + MaximumVolume1 string `protobuf:"bytes,4,opt,name=maximum_volume1,json=maximumVolume1,proto3" json:"maximum_volume1,omitempty"` } -func (x *SubscribeResponse) Reset() { - *x = SubscribeResponse{} +func (x *AddLiquidityData) Reset() { + *x = AddLiquidityData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[46] + mi := &file_resources_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SubscribeResponse) String() string { +func (x *AddLiquidityData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SubscribeResponse) ProtoMessage() {} +func (*AddLiquidityData) ProtoMessage() {} -func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[46] +func (x *AddLiquidityData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3443,57 +6425,68 @@ func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. -func (*SubscribeResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{46} +// Deprecated: Use AddLiquidityData.ProtoReflect.Descriptor instead. +func (*AddLiquidityData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{86} } -func (x *SubscribeResponse) GetQuery() string { +func (x *AddLiquidityData) GetCoin0() *Coin { if x != nil { - return x.Query + return x.Coin0 } - return "" + return nil } -func (x *SubscribeResponse) GetData() *structpb.Struct { +func (x *AddLiquidityData) GetCoin1() *Coin { if x != nil { - return x.Data + return x.Coin1 } return nil } -func (x *SubscribeResponse) GetEvents() []*SubscribeResponse_Event { +func (x *AddLiquidityData) GetVolume0() string { if x != nil { - return x.Events + return x.Volume0 } - return nil + return "" } -type HaltsRequest struct { +func (x *AddLiquidityData) GetMaximumVolume1() string { + if x != nil { + return x.MaximumVolume1 + } + return "" +} + +type RemoveLiquidityData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Coin0 *Coin `protobuf:"bytes,1,opt,name=coin0,proto3" json:"coin0,omitempty"` + Coin1 *Coin `protobuf:"bytes,2,opt,name=coin1,proto3" json:"coin1,omitempty"` + Liquidity string `protobuf:"bytes,3,opt,name=liquidity,proto3" json:"liquidity,omitempty"` + MinimumVolume0 string `protobuf:"bytes,4,opt,name=minimum_volume0,json=minimumVolume0,proto3" json:"minimum_volume0,omitempty"` + MinimumVolume1 string `protobuf:"bytes,5,opt,name=minimum_volume1,json=minimumVolume1,proto3" json:"minimum_volume1,omitempty"` } -func (x *HaltsRequest) Reset() { - *x = HaltsRequest{} +func (x *RemoveLiquidityData) Reset() { + *x = RemoveLiquidityData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[47] + mi := &file_resources_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *HaltsRequest) String() string { +func (x *RemoveLiquidityData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*HaltsRequest) ProtoMessage() {} +func (*RemoveLiquidityData) ProtoMessage() {} -func (x *HaltsRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[47] +func (x *RemoveLiquidityData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3504,91 +6497,73 @@ func (x *HaltsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use HaltsRequest.ProtoReflect.Descriptor instead. -func (*HaltsRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{47} +// Deprecated: Use RemoveLiquidityData.ProtoReflect.Descriptor instead. +func (*RemoveLiquidityData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{87} } -func (x *HaltsRequest) GetHeight() uint64 { +func (x *RemoveLiquidityData) GetCoin0() *Coin { if x != nil { - return x.Height + return x.Coin0 } - return 0 -} - -type HaltsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PublicKeys []string `protobuf:"bytes,1,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"` + return nil } -func (x *HaltsResponse) Reset() { - *x = HaltsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RemoveLiquidityData) GetCoin1() *Coin { + if x != nil { + return x.Coin1 } + return nil } -func (x *HaltsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HaltsResponse) ProtoMessage() {} - -func (x *HaltsResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RemoveLiquidityData) GetLiquidity() string { + if x != nil { + return x.Liquidity } - return mi.MessageOf(x) + return "" } -// Deprecated: Use HaltsResponse.ProtoReflect.Descriptor instead. -func (*HaltsResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{48} +func (x *RemoveLiquidityData) GetMinimumVolume0() string { + if x != nil { + return x.MinimumVolume0 + } + return "" } -func (x *HaltsResponse) GetPublicKeys() []string { +func (x *RemoveLiquidityData) GetMinimumVolume1() string { if x != nil { - return x.PublicKeys + return x.MinimumVolume1 } - return nil + return "" } -type FrozenRequest struct { +type SellSwapPoolData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - CoinId *wrapperspb.UInt64Value `protobuf:"bytes,2,opt,name=coin_id,json=coinId,proto3" json:"coin_id,omitempty"` + Coins []*Coin `protobuf:"bytes,1,rep,name=coins,proto3" json:"coins,omitempty"` + ValueToSell string `protobuf:"bytes,2,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` + MinimumValueToBuy string `protobuf:"bytes,4,opt,name=minimum_value_to_buy,json=minimumValueToBuy,proto3" json:"minimum_value_to_buy,omitempty"` } -func (x *FrozenRequest) Reset() { - *x = FrozenRequest{} +func (x *SellSwapPoolData) Reset() { + *x = SellSwapPoolData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[49] + mi := &file_resources_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FrozenRequest) String() string { +func (x *SellSwapPoolData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FrozenRequest) ProtoMessage() {} +func (*SellSwapPoolData) ProtoMessage() {} -func (x *FrozenRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[49] +func (x *SellSwapPoolData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3599,50 +6574,58 @@ func (x *FrozenRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FrozenRequest.ProtoReflect.Descriptor instead. -func (*FrozenRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{49} +// Deprecated: Use SellSwapPoolData.ProtoReflect.Descriptor instead. +func (*SellSwapPoolData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{88} } -func (x *FrozenRequest) GetAddress() string { +func (x *SellSwapPoolData) GetCoins() []*Coin { if x != nil { - return x.Address + return x.Coins + } + return nil +} + +func (x *SellSwapPoolData) GetValueToSell() string { + if x != nil { + return x.ValueToSell } return "" } -func (x *FrozenRequest) GetCoinId() *wrapperspb.UInt64Value { +func (x *SellSwapPoolData) GetMinimumValueToBuy() string { if x != nil { - return x.CoinId + return x.MinimumValueToBuy } - return nil + return "" } -type FrozenResponse struct { +type SellAllSwapPoolData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Frozen []*FrozenResponse_Frozen `protobuf:"bytes,1,rep,name=frozen,proto3" json:"frozen,omitempty"` + Coins []*Coin `protobuf:"bytes,1,rep,name=coins,proto3" json:"coins,omitempty"` + MinimumValueToBuy string `protobuf:"bytes,3,opt,name=minimum_value_to_buy,json=minimumValueToBuy,proto3" json:"minimum_value_to_buy,omitempty"` } -func (x *FrozenResponse) Reset() { - *x = FrozenResponse{} +func (x *SellAllSwapPoolData) Reset() { + *x = SellAllSwapPoolData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[50] + mi := &file_resources_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FrozenResponse) String() string { +func (x *SellAllSwapPoolData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FrozenResponse) ProtoMessage() {} +func (*SellAllSwapPoolData) ProtoMessage() {} -func (x *FrozenResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[50] +func (x *SellAllSwapPoolData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3653,45 +6636,52 @@ func (x *FrozenResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FrozenResponse.ProtoReflect.Descriptor instead. -func (*FrozenResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{50} +// Deprecated: Use SellAllSwapPoolData.ProtoReflect.Descriptor instead. +func (*SellAllSwapPoolData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{89} } -func (x *FrozenResponse) GetFrozen() []*FrozenResponse_Frozen { +func (x *SellAllSwapPoolData) GetCoins() []*Coin { if x != nil { - return x.Frozen + return x.Coins } return nil } -type WaitListRequest struct { +func (x *SellAllSwapPoolData) GetMinimumValueToBuy() string { + if x != nil { + return x.MinimumValueToBuy + } + return "" +} + +type BuySwapPoolData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` - Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + Coins []*Coin `protobuf:"bytes,1,rep,name=coins,proto3" json:"coins,omitempty"` + ValueToBuy string `protobuf:"bytes,2,opt,name=value_to_buy,json=valueToBuy,proto3" json:"value_to_buy,omitempty"` + MaximumValueToSell string `protobuf:"bytes,4,opt,name=maximum_value_to_sell,json=maximumValueToSell,proto3" json:"maximum_value_to_sell,omitempty"` } -func (x *WaitListRequest) Reset() { - *x = WaitListRequest{} +func (x *BuySwapPoolData) Reset() { + *x = BuySwapPoolData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[51] + mi := &file_resources_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WaitListRequest) String() string { +func (x *BuySwapPoolData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WaitListRequest) ProtoMessage() {} +func (*BuySwapPoolData) ProtoMessage() {} -func (x *WaitListRequest) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[51] +func (x *BuySwapPoolData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3702,57 +6692,58 @@ func (x *WaitListRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WaitListRequest.ProtoReflect.Descriptor instead. -func (*WaitListRequest) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{51} +// Deprecated: Use BuySwapPoolData.ProtoReflect.Descriptor instead. +func (*BuySwapPoolData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{90} } -func (x *WaitListRequest) GetPublicKey() string { +func (x *BuySwapPoolData) GetCoins() []*Coin { if x != nil { - return x.PublicKey + return x.Coins } - return "" + return nil } -func (x *WaitListRequest) GetAddress() string { +func (x *BuySwapPoolData) GetValueToBuy() string { if x != nil { - return x.Address + return x.ValueToBuy } return "" } -func (x *WaitListRequest) GetHeight() uint64 { +func (x *BuySwapPoolData) GetMaximumValueToSell() string { if x != nil { - return x.Height + return x.MaximumValueToSell } - return 0 + return "" } -type WaitListResponse struct { +type EditCandidateCommission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - List []*WaitListResponse_Wait `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Commission uint64 `protobuf:"varint,2,opt,name=commission,proto3" json:"commission,omitempty"` } -func (x *WaitListResponse) Reset() { - *x = WaitListResponse{} +func (x *EditCandidateCommission) Reset() { + *x = EditCandidateCommission{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[52] + mi := &file_resources_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WaitListResponse) String() string { +func (x *EditCandidateCommission) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WaitListResponse) ProtoMessage() {} +func (*EditCandidateCommission) ProtoMessage() {} -func (x *WaitListResponse) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[52] +func (x *EditCandidateCommission) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3763,45 +6754,51 @@ func (x *WaitListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WaitListResponse.ProtoReflect.Descriptor instead. -func (*WaitListResponse) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{52} +// Deprecated: Use EditCandidateCommission.ProtoReflect.Descriptor instead. +func (*EditCandidateCommission) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{91} } -func (x *WaitListResponse) GetList() []*WaitListResponse_Wait { +func (x *EditCandidateCommission) GetPubKey() string { if x != nil { - return x.List + return x.PubKey } - return nil + return "" } -type SendData struct { +func (x *EditCandidateCommission) GetCommission() uint64 { + if x != nil { + return x.Commission + } + return 0 +} + +type MintTokenData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` - To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SendData) Reset() { - *x = SendData{} +func (x *MintTokenData) Reset() { + *x = MintTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[53] + mi := &file_resources_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendData) String() string { +func (x *MintTokenData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendData) ProtoMessage() {} +func (*MintTokenData) ProtoMessage() {} -func (x *SendData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[53] +func (x *MintTokenData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3812,60 +6809,51 @@ func (x *SendData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendData.ProtoReflect.Descriptor instead. -func (*SendData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{53} +// Deprecated: Use MintTokenData.ProtoReflect.Descriptor instead. +func (*MintTokenData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{92} } -func (x *SendData) GetCoin() *Coin { +func (x *MintTokenData) GetCoin() *Coin { if x != nil { return x.Coin } return nil } -func (x *SendData) GetTo() string { - if x != nil { - return x.To - } - return "" -} - -func (x *SendData) GetValue() string { +func (x *MintTokenData) GetValue() string { if x != nil { return x.Value } return "" } -type SellCoinData struct { +type BurnTokenData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CoinToSell *Coin `protobuf:"bytes,1,opt,name=coin_to_sell,json=coinToSell,proto3" json:"coin_to_sell,omitempty"` - ValueToSell string `protobuf:"bytes,2,opt,name=value_to_sell,json=valueToSell,proto3" json:"value_to_sell,omitempty"` - CoinToBuy *Coin `protobuf:"bytes,3,opt,name=coin_to_buy,json=coinToBuy,proto3" json:"coin_to_buy,omitempty"` - MinimumValueToBuy string `protobuf:"bytes,4,opt,name=minimum_value_to_buy,json=minimumValueToBuy,proto3" json:"minimum_value_to_buy,omitempty"` + Coin *Coin `protobuf:"bytes,1,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } -func (x *SellCoinData) Reset() { - *x = SellCoinData{} +func (x *BurnTokenData) Reset() { + *x = BurnTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[54] + mi := &file_resources_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SellCoinData) String() string { +func (x *BurnTokenData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SellCoinData) ProtoMessage() {} +func (*BurnTokenData) ProtoMessage() {} -func (x *SellCoinData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[54] +func (x *BurnTokenData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3876,66 +6864,55 @@ func (x *SellCoinData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SellCoinData.ProtoReflect.Descriptor instead. -func (*SellCoinData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{54} -} - -func (x *SellCoinData) GetCoinToSell() *Coin { - if x != nil { - return x.CoinToSell - } - return nil -} - -func (x *SellCoinData) GetValueToSell() string { - if x != nil { - return x.ValueToSell - } - return "" +// Deprecated: Use BurnTokenData.ProtoReflect.Descriptor instead. +func (*BurnTokenData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{93} } -func (x *SellCoinData) GetCoinToBuy() *Coin { +func (x *BurnTokenData) GetCoin() *Coin { if x != nil { - return x.CoinToBuy + return x.Coin } return nil } -func (x *SellCoinData) GetMinimumValueToBuy() string { +func (x *BurnTokenData) GetValue() string { if x != nil { - return x.MinimumValueToBuy + return x.Value } return "" } -type SellAllCoinData struct { +type CreateTokenData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CoinToSell *Coin `protobuf:"bytes,1,opt,name=coin_to_sell,json=coinToSell,proto3" json:"coin_to_sell,omitempty"` - CoinToBuy *Coin `protobuf:"bytes,2,opt,name=coin_to_buy,json=coinToBuy,proto3" json:"coin_to_buy,omitempty"` - MinimumValueToBuy string `protobuf:"bytes,3,opt,name=minimum_value_to_buy,json=minimumValueToBuy,proto3" json:"minimum_value_to_buy,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + InitialAmount string `protobuf:"bytes,3,opt,name=initial_amount,json=initialAmount,proto3" json:"initial_amount,omitempty"` + MaxSupply string `protobuf:"bytes,4,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + Mintable bool `protobuf:"varint,5,opt,name=mintable,proto3" json:"mintable,omitempty"` + Burnable bool `protobuf:"varint,6,opt,name=burnable,proto3" json:"burnable,omitempty"` } -func (x *SellAllCoinData) Reset() { - *x = SellAllCoinData{} +func (x *CreateTokenData) Reset() { + *x = CreateTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[55] + mi := &file_resources_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SellAllCoinData) String() string { +func (x *CreateTokenData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SellAllCoinData) ProtoMessage() {} +func (*CreateTokenData) ProtoMessage() {} -func (x *SellAllCoinData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[55] +func (x *CreateTokenData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3946,60 +6923,83 @@ func (x *SellAllCoinData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SellAllCoinData.ProtoReflect.Descriptor instead. -func (*SellAllCoinData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{55} +// Deprecated: Use CreateTokenData.ProtoReflect.Descriptor instead. +func (*CreateTokenData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{94} } -func (x *SellAllCoinData) GetCoinToSell() *Coin { +func (x *CreateTokenData) GetName() string { if x != nil { - return x.CoinToSell + return x.Name } - return nil + return "" } -func (x *SellAllCoinData) GetCoinToBuy() *Coin { +func (x *CreateTokenData) GetSymbol() string { if x != nil { - return x.CoinToBuy + return x.Symbol } - return nil + return "" } -func (x *SellAllCoinData) GetMinimumValueToBuy() string { +func (x *CreateTokenData) GetInitialAmount() string { if x != nil { - return x.MinimumValueToBuy + return x.InitialAmount } return "" } -type BuyCoinData struct { +func (x *CreateTokenData) GetMaxSupply() string { + if x != nil { + return x.MaxSupply + } + return "" +} + +func (x *CreateTokenData) GetMintable() bool { + if x != nil { + return x.Mintable + } + return false +} + +func (x *CreateTokenData) GetBurnable() bool { + if x != nil { + return x.Burnable + } + return false +} + +type RecreateTokenData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CoinToBuy *Coin `protobuf:"bytes,1,opt,name=coin_to_buy,json=coinToBuy,proto3" json:"coin_to_buy,omitempty"` - ValueToBuy string `protobuf:"bytes,2,opt,name=value_to_buy,json=valueToBuy,proto3" json:"value_to_buy,omitempty"` - CoinToSell *Coin `protobuf:"bytes,3,opt,name=coin_to_sell,json=coinToSell,proto3" json:"coin_to_sell,omitempty"` - MaximumValueToSell string `protobuf:"bytes,4,opt,name=maximum_value_to_sell,json=maximumValueToSell,proto3" json:"maximum_value_to_sell,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + InitialAmount string `protobuf:"bytes,3,opt,name=initial_amount,json=initialAmount,proto3" json:"initial_amount,omitempty"` + MaxSupply string `protobuf:"bytes,4,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + Mintable bool `protobuf:"varint,5,opt,name=mintable,proto3" json:"mintable,omitempty"` + Burnable bool `protobuf:"varint,6,opt,name=burnable,proto3" json:"burnable,omitempty"` } -func (x *BuyCoinData) Reset() { - *x = BuyCoinData{} +func (x *RecreateTokenData) Reset() { + *x = RecreateTokenData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[56] + mi := &file_resources_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BuyCoinData) String() string { +func (x *RecreateTokenData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BuyCoinData) ProtoMessage() {} +func (*RecreateTokenData) ProtoMessage() {} -func (x *BuyCoinData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[56] +func (x *RecreateTokenData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4010,69 +7010,122 @@ func (x *BuyCoinData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BuyCoinData.ProtoReflect.Descriptor instead. -func (*BuyCoinData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{56} +// Deprecated: Use RecreateTokenData.ProtoReflect.Descriptor instead. +func (*RecreateTokenData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{95} } -func (x *BuyCoinData) GetCoinToBuy() *Coin { +func (x *RecreateTokenData) GetName() string { if x != nil { - return x.CoinToBuy + return x.Name + } + return "" +} + +func (x *RecreateTokenData) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *RecreateTokenData) GetInitialAmount() string { + if x != nil { + return x.InitialAmount } - return nil + return "" } -func (x *BuyCoinData) GetValueToBuy() string { +func (x *RecreateTokenData) GetMaxSupply() string { if x != nil { - return x.ValueToBuy + return x.MaxSupply } return "" } -func (x *BuyCoinData) GetCoinToSell() *Coin { +func (x *RecreateTokenData) GetMintable() bool { if x != nil { - return x.CoinToSell + return x.Mintable } - return nil + return false } -func (x *BuyCoinData) GetMaximumValueToSell() string { +func (x *RecreateTokenData) GetBurnable() bool { if x != nil { - return x.MaximumValueToSell + return x.Burnable } - return "" + return false } -type CreateCoinData struct { +type VoteCommissionData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` - InitialAmount string `protobuf:"bytes,3,opt,name=initial_amount,json=initialAmount,proto3" json:"initial_amount,omitempty"` - InitialReserve string `protobuf:"bytes,4,opt,name=initial_reserve,json=initialReserve,proto3" json:"initial_reserve,omitempty"` - ConstantReserveRatio uint64 `protobuf:"varint,5,opt,name=constant_reserve_ratio,json=constantReserveRatio,proto3" json:"constant_reserve_ratio,omitempty"` - MaxSupply string `protobuf:"bytes,6,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` -} - -func (x *CreateCoinData) Reset() { - *x = CreateCoinData{} + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Coin *Coin `protobuf:"bytes,3,opt,name=coin,proto3" json:"coin,omitempty"` + PayloadByte string `protobuf:"bytes,4,opt,name=payload_byte,json=payloadByte,proto3" json:"payload_byte,omitempty"` + Send string `protobuf:"bytes,5,opt,name=send,proto3" json:"send,omitempty"` + BuyBancor string `protobuf:"bytes,38,opt,name=buy_bancor,json=buyBancor,proto3" json:"buy_bancor,omitempty"` + SellBancor string `protobuf:"bytes,39,opt,name=sell_bancor,json=sellBancor,proto3" json:"sell_bancor,omitempty"` + SellAllBancor string `protobuf:"bytes,40,opt,name=sell_all_bancor,json=sellAllBancor,proto3" json:"sell_all_bancor,omitempty"` + BuyPoolBase string `protobuf:"bytes,41,opt,name=buy_pool_base,json=buyPoolBase,proto3" json:"buy_pool_base,omitempty"` + BuyPoolDelta string `protobuf:"bytes,53,opt,name=buy_pool_delta,json=buyPoolDelta,proto3" json:"buy_pool_delta,omitempty"` + SellPoolBase string `protobuf:"bytes,42,opt,name=sell_pool_base,json=sellPoolBase,proto3" json:"sell_pool_base,omitempty"` + SellPoolDelta string `protobuf:"bytes,54,opt,name=sell_pool_delta,json=sellPoolDelta,proto3" json:"sell_pool_delta,omitempty"` + SellAllPoolBase string `protobuf:"bytes,43,opt,name=sell_all_pool_base,json=sellAllPoolBase,proto3" json:"sell_all_pool_base,omitempty"` + SellAllPoolDelta string `protobuf:"bytes,55,opt,name=sell_all_pool_delta,json=sellAllPoolDelta,proto3" json:"sell_all_pool_delta,omitempty"` + CreateTicker3 string `protobuf:"bytes,7,opt,name=create_ticker3,json=createTicker3,proto3" json:"create_ticker3,omitempty"` + CreateTicker4 string `protobuf:"bytes,8,opt,name=create_ticker4,json=createTicker4,proto3" json:"create_ticker4,omitempty"` + CreateTicker5 string `protobuf:"bytes,9,opt,name=create_ticker5,json=createTicker5,proto3" json:"create_ticker5,omitempty"` + CreateTicker6 string `protobuf:"bytes,10,opt,name=create_ticker6,json=createTicker6,proto3" json:"create_ticker6,omitempty"` + CreateTicker7_10 string `protobuf:"bytes,11,opt,name=create_ticker7_10,json=createTicker710,proto3" json:"create_ticker7_10,omitempty"` + CreateCoin string `protobuf:"bytes,34,opt,name=create_coin,json=createCoin,proto3" json:"create_coin,omitempty"` + CreateToken string `protobuf:"bytes,35,opt,name=create_token,json=createToken,proto3" json:"create_token,omitempty"` + RecreateCoin string `protobuf:"bytes,36,opt,name=recreate_coin,json=recreateCoin,proto3" json:"recreate_coin,omitempty"` + RecreateToken string `protobuf:"bytes,37,opt,name=recreate_token,json=recreateToken,proto3" json:"recreate_token,omitempty"` + DeclareCandidacy string `protobuf:"bytes,13,opt,name=declare_candidacy,json=declareCandidacy,proto3" json:"declare_candidacy,omitempty"` + Delegate string `protobuf:"bytes,14,opt,name=delegate,proto3" json:"delegate,omitempty"` + Unbond string `protobuf:"bytes,15,opt,name=unbond,proto3" json:"unbond,omitempty"` + RedeemCheck string `protobuf:"bytes,16,opt,name=redeem_check,json=redeemCheck,proto3" json:"redeem_check,omitempty"` + SetCandidateOn string `protobuf:"bytes,44,opt,name=set_candidate_on,json=setCandidateOn,proto3" json:"set_candidate_on,omitempty"` + SetCandidateOff string `protobuf:"bytes,45,opt,name=set_candidate_off,json=setCandidateOff,proto3" json:"set_candidate_off,omitempty"` + CreateMultisig string `protobuf:"bytes,18,opt,name=create_multisig,json=createMultisig,proto3" json:"create_multisig,omitempty"` + MultisendBase string `protobuf:"bytes,51,opt,name=multisend_base,json=multisendBase,proto3" json:"multisend_base,omitempty"` + MultisendDelta string `protobuf:"bytes,52,opt,name=multisend_delta,json=multisendDelta,proto3" json:"multisend_delta,omitempty"` + EditCandidate string `protobuf:"bytes,20,opt,name=edit_candidate,json=editCandidate,proto3" json:"edit_candidate,omitempty"` + SetHaltBlock string `protobuf:"bytes,21,opt,name=set_halt_block,json=setHaltBlock,proto3" json:"set_halt_block,omitempty"` + EditTickerOwner string `protobuf:"bytes,22,opt,name=edit_ticker_owner,json=editTickerOwner,proto3" json:"edit_ticker_owner,omitempty"` + EditMultisig string `protobuf:"bytes,23,opt,name=edit_multisig,json=editMultisig,proto3" json:"edit_multisig,omitempty"` + EditCandidatePublicKey string `protobuf:"bytes,25,opt,name=edit_candidate_public_key,json=editCandidatePublicKey,proto3" json:"edit_candidate_public_key,omitempty"` + CreateSwapPool string `protobuf:"bytes,48,opt,name=create_swap_pool,json=createSwapPool,proto3" json:"create_swap_pool,omitempty"` + AddLiquidity string `protobuf:"bytes,49,opt,name=add_liquidity,json=addLiquidity,proto3" json:"add_liquidity,omitempty"` + RemoveLiquidity string `protobuf:"bytes,50,opt,name=remove_liquidity,json=removeLiquidity,proto3" json:"remove_liquidity,omitempty"` + EditCandidateCommission string `protobuf:"bytes,28,opt,name=edit_candidate_commission,json=editCandidateCommission,proto3" json:"edit_candidate_commission,omitempty"` + MintToken string `protobuf:"bytes,46,opt,name=mint_token,json=mintToken,proto3" json:"mint_token,omitempty"` + BurnToken string `protobuf:"bytes,47,opt,name=burn_token,json=burnToken,proto3" json:"burn_token,omitempty"` + VoteCommission string `protobuf:"bytes,31,opt,name=vote_commission,json=voteCommission,proto3" json:"vote_commission,omitempty"` + VoteUpdate string `protobuf:"bytes,32,opt,name=vote_update,json=voteUpdate,proto3" json:"vote_update,omitempty"` +} + +func (x *VoteCommissionData) Reset() { + *x = VoteCommissionData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[57] + mi := &file_resources_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateCoinData) String() string { +func (x *VoteCommissionData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateCoinData) ProtoMessage() {} +func (*VoteCommissionData) ProtoMessage() {} -func (x *CreateCoinData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[57] +func (x *VoteCommissionData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4083,338 +7136,353 @@ func (x *CreateCoinData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateCoinData.ProtoReflect.Descriptor instead. -func (*CreateCoinData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{57} +// Deprecated: Use VoteCommissionData.ProtoReflect.Descriptor instead. +func (*VoteCommissionData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{96} } -func (x *CreateCoinData) GetName() string { +func (x *VoteCommissionData) GetPubKey() string { if x != nil { - return x.Name + return x.PubKey } return "" } -func (x *CreateCoinData) GetSymbol() string { +func (x *VoteCommissionData) GetHeight() uint64 { if x != nil { - return x.Symbol + return x.Height } - return "" + return 0 } -func (x *CreateCoinData) GetInitialAmount() string { +func (x *VoteCommissionData) GetCoin() *Coin { if x != nil { - return x.InitialAmount + return x.Coin } - return "" + return nil } -func (x *CreateCoinData) GetInitialReserve() string { +func (x *VoteCommissionData) GetPayloadByte() string { if x != nil { - return x.InitialReserve + return x.PayloadByte } return "" } -func (x *CreateCoinData) GetConstantReserveRatio() uint64 { +func (x *VoteCommissionData) GetSend() string { if x != nil { - return x.ConstantReserveRatio + return x.Send } - return 0 + return "" } -func (x *CreateCoinData) GetMaxSupply() string { +func (x *VoteCommissionData) GetBuyBancor() string { if x != nil { - return x.MaxSupply + return x.BuyBancor } return "" } -type DeclareCandidacyData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - PubKey string `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` - Commission uint64 `protobuf:"varint,3,opt,name=commission,proto3" json:"commission,omitempty"` - Coin *Coin `protobuf:"bytes,4,opt,name=coin,proto3" json:"coin,omitempty"` - Stake string `protobuf:"bytes,5,opt,name=stake,proto3" json:"stake,omitempty"` +func (x *VoteCommissionData) GetSellBancor() string { + if x != nil { + return x.SellBancor + } + return "" } -func (x *DeclareCandidacyData) Reset() { - *x = DeclareCandidacyData{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *VoteCommissionData) GetSellAllBancor() string { + if x != nil { + return x.SellAllBancor } + return "" } -func (x *DeclareCandidacyData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *VoteCommissionData) GetBuyPoolBase() string { + if x != nil { + return x.BuyPoolBase + } + return "" } -func (*DeclareCandidacyData) ProtoMessage() {} +func (x *VoteCommissionData) GetBuyPoolDelta() string { + if x != nil { + return x.BuyPoolDelta + } + return "" +} -func (x *DeclareCandidacyData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *VoteCommissionData) GetSellPoolBase() string { + if x != nil { + return x.SellPoolBase } - return mi.MessageOf(x) + return "" } -// Deprecated: Use DeclareCandidacyData.ProtoReflect.Descriptor instead. -func (*DeclareCandidacyData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{58} +func (x *VoteCommissionData) GetSellPoolDelta() string { + if x != nil { + return x.SellPoolDelta + } + return "" } -func (x *DeclareCandidacyData) GetAddress() string { +func (x *VoteCommissionData) GetSellAllPoolBase() string { if x != nil { - return x.Address + return x.SellAllPoolBase } return "" } -func (x *DeclareCandidacyData) GetPubKey() string { +func (x *VoteCommissionData) GetSellAllPoolDelta() string { if x != nil { - return x.PubKey + return x.SellAllPoolDelta } return "" } -func (x *DeclareCandidacyData) GetCommission() uint64 { +func (x *VoteCommissionData) GetCreateTicker3() string { if x != nil { - return x.Commission + return x.CreateTicker3 } - return 0 + return "" } -func (x *DeclareCandidacyData) GetCoin() *Coin { +func (x *VoteCommissionData) GetCreateTicker4() string { if x != nil { - return x.Coin + return x.CreateTicker4 } - return nil + return "" } -func (x *DeclareCandidacyData) GetStake() string { +func (x *VoteCommissionData) GetCreateTicker5() string { if x != nil { - return x.Stake + return x.CreateTicker5 } return "" } -type DelegateData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *VoteCommissionData) GetCreateTicker6() string { + if x != nil { + return x.CreateTicker6 + } + return "" +} - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` - Coin *Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +func (x *VoteCommissionData) GetCreateTicker7_10() string { + if x != nil { + return x.CreateTicker7_10 + } + return "" } -func (x *DelegateData) Reset() { - *x = DelegateData{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *VoteCommissionData) GetCreateCoin() string { + if x != nil { + return x.CreateCoin } + return "" } -func (x *DelegateData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *VoteCommissionData) GetCreateToken() string { + if x != nil { + return x.CreateToken + } + return "" } -func (*DelegateData) ProtoMessage() {} +func (x *VoteCommissionData) GetRecreateCoin() string { + if x != nil { + return x.RecreateCoin + } + return "" +} -func (x *DelegateData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *VoteCommissionData) GetRecreateToken() string { + if x != nil { + return x.RecreateToken } - return mi.MessageOf(x) + return "" } -// Deprecated: Use DelegateData.ProtoReflect.Descriptor instead. -func (*DelegateData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{59} +func (x *VoteCommissionData) GetDeclareCandidacy() string { + if x != nil { + return x.DeclareCandidacy + } + return "" } -func (x *DelegateData) GetPubKey() string { +func (x *VoteCommissionData) GetDelegate() string { if x != nil { - return x.PubKey + return x.Delegate } return "" } -func (x *DelegateData) GetCoin() *Coin { +func (x *VoteCommissionData) GetUnbond() string { if x != nil { - return x.Coin + return x.Unbond } - return nil + return "" } -func (x *DelegateData) GetValue() string { +func (x *VoteCommissionData) GetRedeemCheck() string { if x != nil { - return x.Value + return x.RedeemCheck } return "" } -type UnbondData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *VoteCommissionData) GetSetCandidateOn() string { + if x != nil { + return x.SetCandidateOn + } + return "" +} - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` - Coin *Coin `protobuf:"bytes,2,opt,name=coin,proto3" json:"coin,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +func (x *VoteCommissionData) GetSetCandidateOff() string { + if x != nil { + return x.SetCandidateOff + } + return "" } -func (x *UnbondData) Reset() { - *x = UnbondData{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *VoteCommissionData) GetCreateMultisig() string { + if x != nil { + return x.CreateMultisig } + return "" } -func (x *UnbondData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *VoteCommissionData) GetMultisendBase() string { + if x != nil { + return x.MultisendBase + } + return "" } -func (*UnbondData) ProtoMessage() {} +func (x *VoteCommissionData) GetMultisendDelta() string { + if x != nil { + return x.MultisendDelta + } + return "" +} -func (x *UnbondData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *VoteCommissionData) GetEditCandidate() string { + if x != nil { + return x.EditCandidate } - return mi.MessageOf(x) + return "" } -// Deprecated: Use UnbondData.ProtoReflect.Descriptor instead. -func (*UnbondData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{60} +func (x *VoteCommissionData) GetSetHaltBlock() string { + if x != nil { + return x.SetHaltBlock + } + return "" } -func (x *UnbondData) GetPubKey() string { +func (x *VoteCommissionData) GetEditTickerOwner() string { if x != nil { - return x.PubKey + return x.EditTickerOwner } return "" } -func (x *UnbondData) GetCoin() *Coin { +func (x *VoteCommissionData) GetEditMultisig() string { if x != nil { - return x.Coin + return x.EditMultisig } - return nil + return "" } -func (x *UnbondData) GetValue() string { +func (x *VoteCommissionData) GetEditCandidatePublicKey() string { if x != nil { - return x.Value + return x.EditCandidatePublicKey } return "" } -type RedeemCheckData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *VoteCommissionData) GetCreateSwapPool() string { + if x != nil { + return x.CreateSwapPool + } + return "" +} - RawCheck string `protobuf:"bytes,1,opt,name=raw_check,json=rawCheck,proto3" json:"raw_check,omitempty"` - Proof string `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` +func (x *VoteCommissionData) GetAddLiquidity() string { + if x != nil { + return x.AddLiquidity + } + return "" } -func (x *RedeemCheckData) Reset() { - *x = RedeemCheckData{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *VoteCommissionData) GetRemoveLiquidity() string { + if x != nil { + return x.RemoveLiquidity } + return "" } -func (x *RedeemCheckData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *VoteCommissionData) GetEditCandidateCommission() string { + if x != nil { + return x.EditCandidateCommission + } + return "" } -func (*RedeemCheckData) ProtoMessage() {} - -func (x *RedeemCheckData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *VoteCommissionData) GetMintToken() string { + if x != nil { + return x.MintToken } - return mi.MessageOf(x) + return "" } -// Deprecated: Use RedeemCheckData.ProtoReflect.Descriptor instead. -func (*RedeemCheckData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{61} +func (x *VoteCommissionData) GetBurnToken() string { + if x != nil { + return x.BurnToken + } + return "" } -func (x *RedeemCheckData) GetRawCheck() string { +func (x *VoteCommissionData) GetVoteCommission() string { if x != nil { - return x.RawCheck + return x.VoteCommission } return "" } -func (x *RedeemCheckData) GetProof() string { +func (x *VoteCommissionData) GetVoteUpdate() string { if x != nil { - return x.Proof + return x.VoteUpdate } return "" } -type SetCandidateOnData struct { +type VoteUpdateData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` } -func (x *SetCandidateOnData) Reset() { - *x = SetCandidateOnData{} +func (x *VoteUpdateData) Reset() { + *x = VoteUpdateData{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[62] + mi := &file_resources_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetCandidateOnData) String() string { +func (x *VoteUpdateData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetCandidateOnData) ProtoMessage() {} +func (*VoteUpdateData) ProtoMessage() {} -func (x *SetCandidateOnData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[62] +func (x *VoteUpdateData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4425,43 +7493,58 @@ func (x *SetCandidateOnData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetCandidateOnData.ProtoReflect.Descriptor instead. -func (*SetCandidateOnData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{62} +// Deprecated: Use VoteUpdateData.ProtoReflect.Descriptor instead. +func (*VoteUpdateData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{97} } -func (x *SetCandidateOnData) GetPubKey() string { +func (x *VoteUpdateData) GetPubKey() string { if x != nil { return x.PubKey } return "" } -type SetCandidateOffData struct { +func (x *VoteUpdateData) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *VoteUpdateData) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type CommissionVotesResponse_Vote struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` + Price *PriceCommissionResponse `protobuf:"bytes,2,opt,name=price,proto3" json:"price,omitempty"` + PublicKeys []string `protobuf:"bytes,1,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"` } -func (x *SetCandidateOffData) Reset() { - *x = SetCandidateOffData{} +func (x *CommissionVotesResponse_Vote) Reset() { + *x = CommissionVotesResponse_Vote{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[63] + mi := &file_resources_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetCandidateOffData) String() string { +func (x *CommissionVotesResponse_Vote) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetCandidateOffData) ProtoMessage() {} +func (*CommissionVotesResponse_Vote) ProtoMessage() {} -func (x *SetCandidateOffData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[63] +func (x *CommissionVotesResponse_Vote) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4472,45 +7555,51 @@ func (x *SetCandidateOffData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetCandidateOffData.ProtoReflect.Descriptor instead. -func (*SetCandidateOffData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{63} +// Deprecated: Use CommissionVotesResponse_Vote.ProtoReflect.Descriptor instead. +func (*CommissionVotesResponse_Vote) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{4, 0} } -func (x *SetCandidateOffData) GetPubKey() string { +func (x *CommissionVotesResponse_Vote) GetPrice() *PriceCommissionResponse { if x != nil { - return x.PubKey + return x.Price } - return "" + return nil } -type CreateMultisigData struct { +func (x *CommissionVotesResponse_Vote) GetPublicKeys() []string { + if x != nil { + return x.PublicKeys + } + return nil +} + +type UpdateVotesResponse_Vote struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Threshold uint64 `protobuf:"varint,1,opt,name=threshold,proto3" json:"threshold,omitempty"` - Weights []uint64 `protobuf:"varint,2,rep,packed,name=weights,proto3" json:"weights,omitempty"` - Addresses []string `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + PublicKeys []string `protobuf:"bytes,1,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"` } -func (x *CreateMultisigData) Reset() { - *x = CreateMultisigData{} +func (x *UpdateVotesResponse_Vote) Reset() { + *x = UpdateVotesResponse_Vote{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[64] + mi := &file_resources_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CreateMultisigData) String() string { +func (x *UpdateVotesResponse_Vote) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CreateMultisigData) ProtoMessage() {} +func (*UpdateVotesResponse_Vote) ProtoMessage() {} -func (x *CreateMultisigData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[64] +func (x *UpdateVotesResponse_Vote) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4521,57 +7610,51 @@ func (x *CreateMultisigData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CreateMultisigData.ProtoReflect.Descriptor instead. -func (*CreateMultisigData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{64} -} - -func (x *CreateMultisigData) GetThreshold() uint64 { - if x != nil { - return x.Threshold - } - return 0 +// Deprecated: Use UpdateVotesResponse_Vote.ProtoReflect.Descriptor instead. +func (*UpdateVotesResponse_Vote) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{6, 0} } -func (x *CreateMultisigData) GetWeights() []uint64 { +func (x *UpdateVotesResponse_Vote) GetVersion() string { if x != nil { - return x.Weights + return x.Version } - return nil + return "" } -func (x *CreateMultisigData) GetAddresses() []string { +func (x *UpdateVotesResponse_Vote) GetPublicKeys() []string { if x != nil { - return x.Addresses + return x.PublicKeys } return nil } -type MultiSendData struct { +type VersionNetworkResponse_Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - List []*SendData `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } -func (x *MultiSendData) Reset() { - *x = MultiSendData{} +func (x *VersionNetworkResponse_Version) Reset() { + *x = VersionNetworkResponse_Version{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[65] + mi := &file_resources_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MultiSendData) String() string { +func (x *VersionNetworkResponse_Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MultiSendData) ProtoMessage() {} +func (*VersionNetworkResponse_Version) ProtoMessage() {} -func (x *MultiSendData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[65] +func (x *VersionNetworkResponse_Version) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4582,46 +7665,52 @@ func (x *MultiSendData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MultiSendData.ProtoReflect.Descriptor instead. -func (*MultiSendData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{65} +// Deprecated: Use VersionNetworkResponse_Version.ProtoReflect.Descriptor instead. +func (*VersionNetworkResponse_Version) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{8, 0} } -func (x *MultiSendData) GetList() []*SendData { +func (x *VersionNetworkResponse_Version) GetName() string { if x != nil { - return x.List + return x.Name } - return nil + return "" } -type EditCandidateData struct { +func (x *VersionNetworkResponse_Version) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +type NodeInfo_ProtocolVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` - RewardAddress string `protobuf:"bytes,3,opt,name=reward_address,json=rewardAddress,proto3" json:"reward_address,omitempty"` - OwnerAddress string `protobuf:"bytes,4,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` - ControlAddress string `protobuf:"bytes,5,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` + P2P uint64 `protobuf:"varint,3,opt,name=p2p,proto3" json:"p2p,omitempty"` + Block uint64 `protobuf:"varint,1,opt,name=block,proto3" json:"block,omitempty"` + App uint64 `protobuf:"varint,2,opt,name=app,proto3" json:"app,omitempty"` } -func (x *EditCandidateData) Reset() { - *x = EditCandidateData{} +func (x *NodeInfo_ProtocolVersion) Reset() { + *x = NodeInfo_ProtocolVersion{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[66] + mi := &file_resources_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EditCandidateData) String() string { +func (x *NodeInfo_ProtocolVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EditCandidateData) ProtoMessage() {} +func (*NodeInfo_ProtocolVersion) ProtoMessage() {} -func (x *EditCandidateData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[66] +func (x *NodeInfo_ProtocolVersion) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4632,65 +7721,58 @@ func (x *EditCandidateData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EditCandidateData.ProtoReflect.Descriptor instead. -func (*EditCandidateData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{66} -} - -func (x *EditCandidateData) GetPubKey() string { - if x != nil { - return x.PubKey - } - return "" +// Deprecated: Use NodeInfo_ProtocolVersion.ProtoReflect.Descriptor instead. +func (*NodeInfo_ProtocolVersion) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{14, 0} } -func (x *EditCandidateData) GetRewardAddress() string { +func (x *NodeInfo_ProtocolVersion) GetP2P() uint64 { if x != nil { - return x.RewardAddress + return x.P2P } - return "" + return 0 } -func (x *EditCandidateData) GetOwnerAddress() string { +func (x *NodeInfo_ProtocolVersion) GetBlock() uint64 { if x != nil { - return x.OwnerAddress + return x.Block } - return "" + return 0 } -func (x *EditCandidateData) GetControlAddress() string { +func (x *NodeInfo_ProtocolVersion) GetApp() uint64 { if x != nil { - return x.ControlAddress + return x.App } - return "" + return 0 } -type SetHaltBlockData struct { +type NodeInfo_Other struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` - Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + TxIndex string `protobuf:"bytes,2,opt,name=tx_index,json=txIndex,proto3" json:"tx_index,omitempty"` + RpcAddress string `protobuf:"bytes,1,opt,name=rpc_address,json=rpcAddress,proto3" json:"rpc_address,omitempty"` } -func (x *SetHaltBlockData) Reset() { - *x = SetHaltBlockData{} +func (x *NodeInfo_Other) Reset() { + *x = NodeInfo_Other{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[67] + mi := &file_resources_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetHaltBlockData) String() string { +func (x *NodeInfo_Other) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetHaltBlockData) ProtoMessage() {} +func (*NodeInfo_Other) ProtoMessage() {} -func (x *SetHaltBlockData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[67] +func (x *NodeInfo_Other) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4701,138 +7783,133 @@ func (x *SetHaltBlockData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetHaltBlockData.ProtoReflect.Descriptor instead. -func (*SetHaltBlockData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{67} +// Deprecated: Use NodeInfo_Other.ProtoReflect.Descriptor instead. +func (*NodeInfo_Other) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{14, 1} } -func (x *SetHaltBlockData) GetPubKey() string { +func (x *NodeInfo_Other) GetTxIndex() string { if x != nil { - return x.PubKey + return x.TxIndex } return "" } -func (x *SetHaltBlockData) GetHeight() uint64 { +func (x *NodeInfo_Other) GetRpcAddress() string { if x != nil { - return x.Height + return x.RpcAddress } - return 0 + return "" } -type RecreateCoinData struct { +type NetInfoResponse_Peer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` - InitialAmount string `protobuf:"bytes,3,opt,name=initial_amount,json=initialAmount,proto3" json:"initial_amount,omitempty"` - InitialReserve string `protobuf:"bytes,4,opt,name=initial_reserve,json=initialReserve,proto3" json:"initial_reserve,omitempty"` - ConstantReserveRatio uint64 `protobuf:"varint,5,opt,name=constant_reserve_ratio,json=constantReserveRatio,proto3" json:"constant_reserve_ratio,omitempty"` - MaxSupply string `protobuf:"bytes,6,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + // Unknown while client is in fast_syncing mode + LatestBlockHeight *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=latest_block_height,json=latestBlockHeight,proto3" json:"latest_block_height,omitempty"` + NodeInfo *NodeInfo `protobuf:"bytes,4,opt,name=node_info,json=nodeInfo,proto3" json:"node_info,omitempty"` + IsOutbound bool `protobuf:"varint,1,opt,name=is_outbound,json=isOutbound,proto3" json:"is_outbound,omitempty"` + ConnectionStatus *NetInfoResponse_Peer_ConnectionStatus `protobuf:"bytes,2,opt,name=connection_status,json=connectionStatus,proto3" json:"connection_status,omitempty"` + RemoteIp string `protobuf:"bytes,3,opt,name=remote_ip,json=remoteIp,proto3" json:"remote_ip,omitempty"` } -func (x *RecreateCoinData) Reset() { - *x = RecreateCoinData{} +func (x *NetInfoResponse_Peer) Reset() { + *x = NetInfoResponse_Peer{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[68] + mi := &file_resources_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RecreateCoinData) String() string { +func (x *NetInfoResponse_Peer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RecreateCoinData) ProtoMessage() {} +func (*NetInfoResponse_Peer) ProtoMessage() {} -func (x *RecreateCoinData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[68] +func (x *NetInfoResponse_Peer) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RecreateCoinData.ProtoReflect.Descriptor instead. -func (*RecreateCoinData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{68} + } + return ms + } + return mi.MessageOf(x) } -func (x *RecreateCoinData) GetName() string { - if x != nil { - return x.Name - } - return "" +// Deprecated: Use NetInfoResponse_Peer.ProtoReflect.Descriptor instead. +func (*NetInfoResponse_Peer) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{15, 0} } -func (x *RecreateCoinData) GetSymbol() string { +func (x *NetInfoResponse_Peer) GetLatestBlockHeight() *wrapperspb.UInt64Value { if x != nil { - return x.Symbol + return x.LatestBlockHeight } - return "" + return nil } -func (x *RecreateCoinData) GetInitialAmount() string { +func (x *NetInfoResponse_Peer) GetNodeInfo() *NodeInfo { if x != nil { - return x.InitialAmount + return x.NodeInfo } - return "" + return nil } -func (x *RecreateCoinData) GetInitialReserve() string { +func (x *NetInfoResponse_Peer) GetIsOutbound() bool { if x != nil { - return x.InitialReserve + return x.IsOutbound } - return "" + return false } -func (x *RecreateCoinData) GetConstantReserveRatio() uint64 { +func (x *NetInfoResponse_Peer) GetConnectionStatus() *NetInfoResponse_Peer_ConnectionStatus { if x != nil { - return x.ConstantReserveRatio + return x.ConnectionStatus } - return 0 + return nil } -func (x *RecreateCoinData) GetMaxSupply() string { +func (x *NetInfoResponse_Peer) GetRemoteIp() string { if x != nil { - return x.MaxSupply + return x.RemoteIp } return "" } -type EditCoinOwnerData struct { +type NetInfoResponse_Peer_ConnectionStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` - NewOwner string `protobuf:"bytes,2,opt,name=new_owner,json=newOwner,proto3" json:"new_owner,omitempty"` + Duration uint64 `protobuf:"varint,4,opt,name=duration,proto3" json:"duration,omitempty"` + SendMonitor *NetInfoResponse_Peer_ConnectionStatus_Monitor `protobuf:"bytes,1,opt,name=SendMonitor,proto3" json:"SendMonitor,omitempty"` + RecvMonitor *NetInfoResponse_Peer_ConnectionStatus_Monitor `protobuf:"bytes,2,opt,name=RecvMonitor,proto3" json:"RecvMonitor,omitempty"` + Channels []*NetInfoResponse_Peer_ConnectionStatus_Channel `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"` } -func (x *EditCoinOwnerData) Reset() { - *x = EditCoinOwnerData{} +func (x *NetInfoResponse_Peer_ConnectionStatus) Reset() { + *x = NetInfoResponse_Peer_ConnectionStatus{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[69] + mi := &file_resources_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EditCoinOwnerData) String() string { +func (x *NetInfoResponse_Peer_ConnectionStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EditCoinOwnerData) ProtoMessage() {} +func (*NetInfoResponse_Peer_ConnectionStatus) ProtoMessage() {} -func (x *EditCoinOwnerData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[69] +func (x *NetInfoResponse_Peer_ConnectionStatus) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4843,52 +7920,76 @@ func (x *EditCoinOwnerData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EditCoinOwnerData.ProtoReflect.Descriptor instead. -func (*EditCoinOwnerData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{69} +// Deprecated: Use NetInfoResponse_Peer_ConnectionStatus.ProtoReflect.Descriptor instead. +func (*NetInfoResponse_Peer_ConnectionStatus) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{15, 0, 0} } -func (x *EditCoinOwnerData) GetSymbol() string { +func (x *NetInfoResponse_Peer_ConnectionStatus) GetDuration() uint64 { if x != nil { - return x.Symbol + return x.Duration } - return "" + return 0 } -func (x *EditCoinOwnerData) GetNewOwner() string { +func (x *NetInfoResponse_Peer_ConnectionStatus) GetSendMonitor() *NetInfoResponse_Peer_ConnectionStatus_Monitor { if x != nil { - return x.NewOwner + return x.SendMonitor } - return "" + return nil } -type EditMultisigData struct { +func (x *NetInfoResponse_Peer_ConnectionStatus) GetRecvMonitor() *NetInfoResponse_Peer_ConnectionStatus_Monitor { + if x != nil { + return x.RecvMonitor + } + return nil +} + +func (x *NetInfoResponse_Peer_ConnectionStatus) GetChannels() []*NetInfoResponse_Peer_ConnectionStatus_Channel { + if x != nil { + return x.Channels + } + return nil +} + +type NetInfoResponse_Peer_ConnectionStatus_Monitor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Threshold uint64 `protobuf:"varint,1,opt,name=threshold,proto3" json:"threshold,omitempty"` - Weights []uint64 `protobuf:"varint,2,rep,packed,name=weights,proto3" json:"weights,omitempty"` - Addresses []string `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"` + Active bool `protobuf:"varint,13,opt,name=active,proto3" json:"active,omitempty"` + Start string `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` + Duration int64 `protobuf:"varint,2,opt,name=duration,proto3" json:"duration,omitempty"` + Idle int64 `protobuf:"varint,3,opt,name=idle,proto3" json:"idle,omitempty"` + Bytes int64 `protobuf:"varint,4,opt,name=bytes,proto3" json:"bytes,omitempty"` + Samples int64 `protobuf:"varint,5,opt,name=samples,proto3" json:"samples,omitempty"` + InstRate int64 `protobuf:"varint,6,opt,name=inst_rate,json=instRate,proto3" json:"inst_rate,omitempty"` + CurRate int64 `protobuf:"varint,7,opt,name=cur_rate,json=curRate,proto3" json:"cur_rate,omitempty"` + AvgRate int64 `protobuf:"varint,8,opt,name=avg_rate,json=avgRate,proto3" json:"avg_rate,omitempty"` + PeakRate int64 `protobuf:"varint,9,opt,name=peak_rate,json=peakRate,proto3" json:"peak_rate,omitempty"` + BytesRem int64 `protobuf:"varint,10,opt,name=bytes_rem,json=bytesRem,proto3" json:"bytes_rem,omitempty"` + TimeRem int64 `protobuf:"varint,11,opt,name=time_rem,json=timeRem,proto3" json:"time_rem,omitempty"` + Progress uint64 `protobuf:"varint,12,opt,name=progress,proto3" json:"progress,omitempty"` } -func (x *EditMultisigData) Reset() { - *x = EditMultisigData{} +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) Reset() { + *x = NetInfoResponse_Peer_ConnectionStatus_Monitor{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[70] + mi := &file_resources_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EditMultisigData) String() string { +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EditMultisigData) ProtoMessage() {} +func (*NetInfoResponse_Peer_ConnectionStatus_Monitor) ProtoMessage() {} -func (x *EditMultisigData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[70] +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4899,105 +8000,131 @@ func (x *EditMultisigData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EditMultisigData.ProtoReflect.Descriptor instead. -func (*EditMultisigData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{70} +// Deprecated: Use NetInfoResponse_Peer_ConnectionStatus_Monitor.ProtoReflect.Descriptor instead. +func (*NetInfoResponse_Peer_ConnectionStatus_Monitor) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{15, 0, 0, 0} } -func (x *EditMultisigData) GetThreshold() uint64 { +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetActive() bool { if x != nil { - return x.Threshold + return x.Active + } + return false +} + +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetStart() string { + if x != nil { + return x.Start + } + return "" +} + +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetDuration() int64 { + if x != nil { + return x.Duration } return 0 } -func (x *EditMultisigData) GetWeights() []uint64 { +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetIdle() int64 { if x != nil { - return x.Weights + return x.Idle } - return nil + return 0 } -func (x *EditMultisigData) GetAddresses() []string { +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetBytes() int64 { if x != nil { - return x.Addresses + return x.Bytes } - return nil + return 0 } -type PriceVoteData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetSamples() int64 { + if x != nil { + return x.Samples + } + return 0 +} - Price string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"` +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetInstRate() int64 { + if x != nil { + return x.InstRate + } + return 0 } -func (x *PriceVoteData) Reset() { - *x = PriceVoteData{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetCurRate() int64 { + if x != nil { + return x.CurRate } + return 0 } -func (x *PriceVoteData) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetAvgRate() int64 { + if x != nil { + return x.AvgRate + } + return 0 } -func (*PriceVoteData) ProtoMessage() {} +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetPeakRate() int64 { + if x != nil { + return x.PeakRate + } + return 0 +} -func (x *PriceVoteData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetBytesRem() int64 { + if x != nil { + return x.BytesRem } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use PriceVoteData.ProtoReflect.Descriptor instead. -func (*PriceVoteData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{71} +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetTimeRem() int64 { + if x != nil { + return x.TimeRem + } + return 0 } -func (x *PriceVoteData) GetPrice() string { +func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetProgress() uint64 { if x != nil { - return x.Price + return x.Progress } - return "" + return 0 } -type EditCandidatePublicKeyData struct { +type NetInfoResponse_Peer_ConnectionStatus_Channel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"` - NewPubKey string `protobuf:"bytes,2,opt,name=new_pub_key,json=newPubKey,proto3" json:"new_pub_key,omitempty"` + Id int64 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` + SendQueueCapacity int64 `protobuf:"varint,1,opt,name=send_queue_capacity,json=sendQueueCapacity,proto3" json:"send_queue_capacity,omitempty"` + SendQueueSize int64 `protobuf:"varint,2,opt,name=send_queue_size,json=sendQueueSize,proto3" json:"send_queue_size,omitempty"` + Priority int64 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"` + RecentlySent int64 `protobuf:"varint,4,opt,name=recently_sent,json=recentlySent,proto3" json:"recently_sent,omitempty"` } -func (x *EditCandidatePublicKeyData) Reset() { - *x = EditCandidatePublicKeyData{} +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) Reset() { + *x = NetInfoResponse_Peer_ConnectionStatus_Channel{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[72] + mi := &file_resources_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EditCandidatePublicKeyData) String() string { +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EditCandidatePublicKeyData) ProtoMessage() {} +func (*NetInfoResponse_Peer_ConnectionStatus_Channel) ProtoMessage() {} -func (x *EditCandidatePublicKeyData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[72] +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5008,52 +8135,73 @@ func (x *EditCandidatePublicKeyData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EditCandidatePublicKeyData.ProtoReflect.Descriptor instead. -func (*EditCandidatePublicKeyData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{72} +// Deprecated: Use NetInfoResponse_Peer_ConnectionStatus_Channel.ProtoReflect.Descriptor instead. +func (*NetInfoResponse_Peer_ConnectionStatus_Channel) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{15, 0, 0, 1} +} + +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetSendQueueCapacity() int64 { + if x != nil { + return x.SendQueueCapacity + } + return 0 +} + +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetSendQueueSize() int64 { + if x != nil { + return x.SendQueueSize + } + return 0 } -func (x *EditCandidatePublicKeyData) GetPubKey() string { +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetPriority() int64 { if x != nil { - return x.PubKey + return x.Priority } - return "" + return 0 } -func (x *EditCandidatePublicKeyData) GetNewPubKey() string { +func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetRecentlySent() int64 { if x != nil { - return x.NewPubKey + return x.RecentlySent } - return "" + return 0 } -type NodeInfo_ProtocolVersion struct { +type GenesisResponse_ConsensusParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - P2P uint64 `protobuf:"varint,3,opt,name=p2p,proto3" json:"p2p,omitempty"` - Block uint64 `protobuf:"varint,1,opt,name=block,proto3" json:"block,omitempty"` - App uint64 `protobuf:"varint,2,opt,name=app,proto3" json:"app,omitempty"` + Block *GenesisResponse_ConsensusParams_Block `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` + Evidence *GenesisResponse_ConsensusParams_Evidence `protobuf:"bytes,2,opt,name=evidence,proto3" json:"evidence,omitempty"` + Validator *GenesisResponse_ConsensusParams_Validator `protobuf:"bytes,3,opt,name=validator,proto3" json:"validator,omitempty"` } -func (x *NodeInfo_ProtocolVersion) Reset() { - *x = NodeInfo_ProtocolVersion{} +func (x *GenesisResponse_ConsensusParams) Reset() { + *x = GenesisResponse_ConsensusParams{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[73] + mi := &file_resources_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_ProtocolVersion) String() string { +func (x *GenesisResponse_ConsensusParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_ProtocolVersion) ProtoMessage() {} +func (*GenesisResponse_ConsensusParams) ProtoMessage() {} -func (x *NodeInfo_ProtocolVersion) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[73] +func (x *GenesisResponse_ConsensusParams) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5064,58 +8212,71 @@ func (x *NodeInfo_ProtocolVersion) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_ProtocolVersion.ProtoReflect.Descriptor instead. -func (*NodeInfo_ProtocolVersion) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{1, 0} +// Deprecated: Use GenesisResponse_ConsensusParams.ProtoReflect.Descriptor instead. +func (*GenesisResponse_ConsensusParams) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 0} } -func (x *NodeInfo_ProtocolVersion) GetP2P() uint64 { +func (x *GenesisResponse_ConsensusParams) GetBlock() *GenesisResponse_ConsensusParams_Block { if x != nil { - return x.P2P + return x.Block } - return 0 + return nil } -func (x *NodeInfo_ProtocolVersion) GetBlock() uint64 { +func (x *GenesisResponse_ConsensusParams) GetEvidence() *GenesisResponse_ConsensusParams_Evidence { if x != nil { - return x.Block + return x.Evidence } - return 0 + return nil } -func (x *NodeInfo_ProtocolVersion) GetApp() uint64 { +func (x *GenesisResponse_ConsensusParams) GetValidator() *GenesisResponse_ConsensusParams_Validator { if x != nil { - return x.App + return x.Validator } - return 0 + return nil } -type NodeInfo_Other struct { +type GenesisResponse_AppState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TxIndex string `protobuf:"bytes,2,opt,name=tx_index,json=txIndex,proto3" json:"tx_index,omitempty"` - RpcAddress string `protobuf:"bytes,1,opt,name=rpc_address,json=rpcAddress,proto3" json:"rpc_address,omitempty"` + Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"` + Validators []*GenesisResponse_AppState_Validators `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators,omitempty"` + Candidates []*GenesisResponse_AppState_Candidate `protobuf:"bytes,3,rep,name=candidates,proto3" json:"candidates,omitempty"` + Coins []*GenesisResponse_AppState_Coin `protobuf:"bytes,5,rep,name=coins,proto3" json:"coins,omitempty"` + FrozenFunds []*GenesisResponse_AppState_FrozenFund `protobuf:"bytes,6,rep,name=frozen_funds,json=frozenFunds,proto3" json:"frozen_funds,omitempty"` + BlockListCandidates []string `protobuf:"bytes,18,rep,name=block_list_candidates,json=blockListCandidates,proto3" json:"block_list_candidates,omitempty"` + Waitlist []*GenesisResponse_AppState_Waitlist `protobuf:"bytes,13,rep,name=waitlist,proto3" json:"waitlist,omitempty"` + Accounts []*GenesisResponse_AppState_Account `protobuf:"bytes,14,rep,name=accounts,proto3" json:"accounts,omitempty"` + HaltBlocks []*GenesisResponse_AppState_HaltBlock `protobuf:"bytes,12,rep,name=halt_blocks,json=haltBlocks,proto3" json:"halt_blocks,omitempty"` + Pools []*GenesisResponse_AppState_Pool `protobuf:"bytes,15,rep,name=pools,proto3" json:"pools,omitempty"` + Commission *GenesisResponse_AppState_Commission `protobuf:"bytes,16,opt,name=commission,proto3" json:"commission,omitempty"` + CommissionVotes []*GenesisResponse_AppState_CommissionVote `protobuf:"bytes,17,rep,name=commission_votes,json=commissionVotes,proto3" json:"commission_votes,omitempty"` + UsedChecks []string `protobuf:"bytes,11,rep,name=used_checks,json=usedChecks,proto3" json:"used_checks,omitempty"` + MaxGas uint64 `protobuf:"varint,7,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"` + TotalSlashed string `protobuf:"bytes,8,opt,name=total_slashed,json=totalSlashed,proto3" json:"total_slashed,omitempty"` } -func (x *NodeInfo_Other) Reset() { - *x = NodeInfo_Other{} +func (x *GenesisResponse_AppState) Reset() { + *x = GenesisResponse_AppState{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[74] + mi := &file_resources_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeInfo_Other) String() string { +func (x *GenesisResponse_AppState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeInfo_Other) ProtoMessage() {} +func (*GenesisResponse_AppState) ProtoMessage() {} -func (x *NodeInfo_Other) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[74] +func (x *GenesisResponse_AppState) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5126,133 +8287,143 @@ func (x *NodeInfo_Other) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeInfo_Other.ProtoReflect.Descriptor instead. -func (*NodeInfo_Other) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{1, 1} +// Deprecated: Use GenesisResponse_AppState.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1} } -func (x *NodeInfo_Other) GetTxIndex() string { +func (x *GenesisResponse_AppState) GetNote() string { if x != nil { - return x.TxIndex + return x.Note } return "" } -func (x *NodeInfo_Other) GetRpcAddress() string { +func (x *GenesisResponse_AppState) GetValidators() []*GenesisResponse_AppState_Validators { if x != nil { - return x.RpcAddress + return x.Validators } - return "" + return nil } -type NetInfoResponse_Peer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *GenesisResponse_AppState) GetCandidates() []*GenesisResponse_AppState_Candidate { + if x != nil { + return x.Candidates + } + return nil +} - // Unknown while client is in fast_syncing mode - LatestBlockHeight *wrapperspb.UInt64Value `protobuf:"bytes,5,opt,name=latest_block_height,json=latestBlockHeight,proto3" json:"latest_block_height,omitempty"` - NodeInfo *NodeInfo `protobuf:"bytes,4,opt,name=node_info,json=nodeInfo,proto3" json:"node_info,omitempty"` - IsOutbound bool `protobuf:"varint,1,opt,name=is_outbound,json=isOutbound,proto3" json:"is_outbound,omitempty"` - ConnectionStatus *NetInfoResponse_Peer_ConnectionStatus `protobuf:"bytes,2,opt,name=connection_status,json=connectionStatus,proto3" json:"connection_status,omitempty"` - RemoteIp string `protobuf:"bytes,3,opt,name=remote_ip,json=remoteIp,proto3" json:"remote_ip,omitempty"` +func (x *GenesisResponse_AppState) GetCoins() []*GenesisResponse_AppState_Coin { + if x != nil { + return x.Coins + } + return nil } -func (x *NetInfoResponse_Peer) Reset() { - *x = NetInfoResponse_Peer{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *GenesisResponse_AppState) GetFrozenFunds() []*GenesisResponse_AppState_FrozenFund { + if x != nil { + return x.FrozenFunds } + return nil } -func (x *NetInfoResponse_Peer) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *GenesisResponse_AppState) GetBlockListCandidates() []string { + if x != nil { + return x.BlockListCandidates + } + return nil } -func (*NetInfoResponse_Peer) ProtoMessage() {} +func (x *GenesisResponse_AppState) GetWaitlist() []*GenesisResponse_AppState_Waitlist { + if x != nil { + return x.Waitlist + } + return nil +} -func (x *NetInfoResponse_Peer) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *GenesisResponse_AppState) GetAccounts() []*GenesisResponse_AppState_Account { + if x != nil { + return x.Accounts } - return mi.MessageOf(x) + return nil } -// Deprecated: Use NetInfoResponse_Peer.ProtoReflect.Descriptor instead. -func (*NetInfoResponse_Peer) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{2, 0} +func (x *GenesisResponse_AppState) GetHaltBlocks() []*GenesisResponse_AppState_HaltBlock { + if x != nil { + return x.HaltBlocks + } + return nil } -func (x *NetInfoResponse_Peer) GetLatestBlockHeight() *wrapperspb.UInt64Value { +func (x *GenesisResponse_AppState) GetPools() []*GenesisResponse_AppState_Pool { if x != nil { - return x.LatestBlockHeight + return x.Pools } return nil } -func (x *NetInfoResponse_Peer) GetNodeInfo() *NodeInfo { +func (x *GenesisResponse_AppState) GetCommission() *GenesisResponse_AppState_Commission { if x != nil { - return x.NodeInfo + return x.Commission } return nil } -func (x *NetInfoResponse_Peer) GetIsOutbound() bool { +func (x *GenesisResponse_AppState) GetCommissionVotes() []*GenesisResponse_AppState_CommissionVote { if x != nil { - return x.IsOutbound + return x.CommissionVotes } - return false + return nil } -func (x *NetInfoResponse_Peer) GetConnectionStatus() *NetInfoResponse_Peer_ConnectionStatus { +func (x *GenesisResponse_AppState) GetUsedChecks() []string { if x != nil { - return x.ConnectionStatus + return x.UsedChecks } return nil } -func (x *NetInfoResponse_Peer) GetRemoteIp() string { +func (x *GenesisResponse_AppState) GetMaxGas() uint64 { if x != nil { - return x.RemoteIp + return x.MaxGas + } + return 0 +} + +func (x *GenesisResponse_AppState) GetTotalSlashed() string { + if x != nil { + return x.TotalSlashed } return "" } -type NetInfoResponse_Peer_ConnectionStatus struct { +type GenesisResponse_ConsensusParams_Block struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Duration uint64 `protobuf:"varint,4,opt,name=duration,proto3" json:"duration,omitempty"` - SendMonitor *NetInfoResponse_Peer_ConnectionStatus_Monitor `protobuf:"bytes,1,opt,name=SendMonitor,proto3" json:"SendMonitor,omitempty"` - RecvMonitor *NetInfoResponse_Peer_ConnectionStatus_Monitor `protobuf:"bytes,2,opt,name=RecvMonitor,proto3" json:"RecvMonitor,omitempty"` - Channels []*NetInfoResponse_Peer_ConnectionStatus_Channel `protobuf:"bytes,3,rep,name=channels,proto3" json:"channels,omitempty"` + MaxBytes int64 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3" json:"max_bytes,omitempty"` + MaxGas int64 `protobuf:"varint,2,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"` + TimeIotaMs int64 `protobuf:"varint,3,opt,name=time_iota_ms,json=timeIotaMs,proto3" json:"time_iota_ms,omitempty"` } -func (x *NetInfoResponse_Peer_ConnectionStatus) Reset() { - *x = NetInfoResponse_Peer_ConnectionStatus{} +func (x *GenesisResponse_ConsensusParams_Block) Reset() { + *x = GenesisResponse_ConsensusParams_Block{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[76] + mi := &file_resources_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NetInfoResponse_Peer_ConnectionStatus) String() string { +func (x *GenesisResponse_ConsensusParams_Block) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NetInfoResponse_Peer_ConnectionStatus) ProtoMessage() {} +func (*GenesisResponse_ConsensusParams_Block) ProtoMessage() {} -func (x *NetInfoResponse_Peer_ConnectionStatus) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[76] +func (x *GenesisResponse_ConsensusParams_Block) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5263,76 +8434,112 @@ func (x *NetInfoResponse_Peer_ConnectionStatus) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use NetInfoResponse_Peer_ConnectionStatus.ProtoReflect.Descriptor instead. -func (*NetInfoResponse_Peer_ConnectionStatus) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{2, 0, 0} +// Deprecated: Use GenesisResponse_ConsensusParams_Block.ProtoReflect.Descriptor instead. +func (*GenesisResponse_ConsensusParams_Block) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 0, 0} } -func (x *NetInfoResponse_Peer_ConnectionStatus) GetDuration() uint64 { +func (x *GenesisResponse_ConsensusParams_Block) GetMaxBytes() int64 { if x != nil { - return x.Duration + return x.MaxBytes + } + return 0 +} + +func (x *GenesisResponse_ConsensusParams_Block) GetMaxGas() int64 { + if x != nil { + return x.MaxGas + } + return 0 +} + +func (x *GenesisResponse_ConsensusParams_Block) GetTimeIotaMs() int64 { + if x != nil { + return x.TimeIotaMs + } + return 0 +} + +type GenesisResponse_ConsensusParams_Evidence struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MaxAgeNumBlocks int64 `protobuf:"varint,1,opt,name=max_age_num_blocks,json=maxAgeNumBlocks,proto3" json:"max_age_num_blocks,omitempty"` + MaxAgeDuration int64 `protobuf:"varint,2,opt,name=max_age_duration,json=maxAgeDuration,proto3" json:"max_age_duration,omitempty"` +} + +func (x *GenesisResponse_ConsensusParams_Evidence) Reset() { + *x = GenesisResponse_ConsensusParams_Evidence{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisResponse_ConsensusParams_Evidence) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisResponse_ConsensusParams_Evidence) ProtoMessage() {} + +func (x *GenesisResponse_ConsensusParams_Evidence) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *NetInfoResponse_Peer_ConnectionStatus) GetSendMonitor() *NetInfoResponse_Peer_ConnectionStatus_Monitor { - if x != nil { - return x.SendMonitor - } - return nil +// Deprecated: Use GenesisResponse_ConsensusParams_Evidence.ProtoReflect.Descriptor instead. +func (*GenesisResponse_ConsensusParams_Evidence) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 0, 1} } -func (x *NetInfoResponse_Peer_ConnectionStatus) GetRecvMonitor() *NetInfoResponse_Peer_ConnectionStatus_Monitor { +func (x *GenesisResponse_ConsensusParams_Evidence) GetMaxAgeNumBlocks() int64 { if x != nil { - return x.RecvMonitor + return x.MaxAgeNumBlocks } - return nil + return 0 } -func (x *NetInfoResponse_Peer_ConnectionStatus) GetChannels() []*NetInfoResponse_Peer_ConnectionStatus_Channel { +func (x *GenesisResponse_ConsensusParams_Evidence) GetMaxAgeDuration() int64 { if x != nil { - return x.Channels + return x.MaxAgeDuration } - return nil + return 0 } -type NetInfoResponse_Peer_ConnectionStatus_Monitor struct { +type GenesisResponse_ConsensusParams_Validator struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Active bool `protobuf:"varint,13,opt,name=active,proto3" json:"active,omitempty"` - Start string `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - Duration int64 `protobuf:"varint,2,opt,name=duration,proto3" json:"duration,omitempty"` - Idle int64 `protobuf:"varint,3,opt,name=idle,proto3" json:"idle,omitempty"` - Bytes int64 `protobuf:"varint,4,opt,name=bytes,proto3" json:"bytes,omitempty"` - Samples int64 `protobuf:"varint,5,opt,name=samples,proto3" json:"samples,omitempty"` - InstRate int64 `protobuf:"varint,6,opt,name=inst_rate,json=instRate,proto3" json:"inst_rate,omitempty"` - CurRate int64 `protobuf:"varint,7,opt,name=cur_rate,json=curRate,proto3" json:"cur_rate,omitempty"` - AvgRate int64 `protobuf:"varint,8,opt,name=avg_rate,json=avgRate,proto3" json:"avg_rate,omitempty"` - PeakRate int64 `protobuf:"varint,9,opt,name=peak_rate,json=peakRate,proto3" json:"peak_rate,omitempty"` - BytesRem int64 `protobuf:"varint,10,opt,name=bytes_rem,json=bytesRem,proto3" json:"bytes_rem,omitempty"` - TimeRem int64 `protobuf:"varint,11,opt,name=time_rem,json=timeRem,proto3" json:"time_rem,omitempty"` - Progress uint64 `protobuf:"varint,12,opt,name=progress,proto3" json:"progress,omitempty"` + PubKeyTypes []string `protobuf:"bytes,1,rep,name=pub_key_types,json=pubKeyTypes,proto3" json:"pub_key_types,omitempty"` } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) Reset() { - *x = NetInfoResponse_Peer_ConnectionStatus_Monitor{} +func (x *GenesisResponse_ConsensusParams_Validator) Reset() { + *x = GenesisResponse_ConsensusParams_Validator{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[77] + mi := &file_resources_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) String() string { +func (x *GenesisResponse_ConsensusParams_Validator) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NetInfoResponse_Peer_ConnectionStatus_Monitor) ProtoMessage() {} +func (*GenesisResponse_ConsensusParams_Validator) ProtoMessage() {} -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[77] +func (x *GenesisResponse_ConsensusParams_Validator) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5343,131 +8550,123 @@ func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use NetInfoResponse_Peer_ConnectionStatus_Monitor.ProtoReflect.Descriptor instead. -func (*NetInfoResponse_Peer_ConnectionStatus_Monitor) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{2, 0, 0, 0} -} - -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetActive() bool { - if x != nil { - return x.Active - } - return false +// Deprecated: Use GenesisResponse_ConsensusParams_Validator.ProtoReflect.Descriptor instead. +func (*GenesisResponse_ConsensusParams_Validator) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 0, 2} } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetStart() string { +func (x *GenesisResponse_ConsensusParams_Validator) GetPubKeyTypes() []string { if x != nil { - return x.Start + return x.PubKeyTypes } - return "" + return nil } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetDuration() int64 { - if x != nil { - return x.Duration - } - return 0 -} +type GenesisResponse_AppState_Validators struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetIdle() int64 { - if x != nil { - return x.Idle - } - return 0 + TotalBipStake string `protobuf:"bytes,4,opt,name=total_bip_stake,json=totalBipStake,proto3" json:"total_bip_stake,omitempty"` + PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + AccumReward string `protobuf:"bytes,2,opt,name=accum_reward,json=accumReward,proto3" json:"accum_reward,omitempty"` + AbsentTimes string `protobuf:"bytes,3,opt,name=absent_times,json=absentTimes,proto3" json:"absent_times,omitempty"` } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetBytes() int64 { - if x != nil { - return x.Bytes +func (x *GenesisResponse_AppState_Validators) Reset() { + *x = GenesisResponse_AppState_Validators{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetSamples() int64 { - if x != nil { - return x.Samples - } - return 0 +func (x *GenesisResponse_AppState_Validators) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetInstRate() int64 { - if x != nil { - return x.InstRate - } - return 0 -} +func (*GenesisResponse_AppState_Validators) ProtoMessage() {} -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetCurRate() int64 { - if x != nil { - return x.CurRate +func (x *GenesisResponse_AppState_Validators) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[112] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetAvgRate() int64 { - if x != nil { - return x.AvgRate - } - return 0 +// Deprecated: Use GenesisResponse_AppState_Validators.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Validators) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 0} } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetPeakRate() int64 { +func (x *GenesisResponse_AppState_Validators) GetTotalBipStake() string { if x != nil { - return x.PeakRate + return x.TotalBipStake } - return 0 + return "" } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetBytesRem() int64 { +func (x *GenesisResponse_AppState_Validators) GetPublicKey() string { if x != nil { - return x.BytesRem + return x.PublicKey } - return 0 + return "" } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetTimeRem() int64 { +func (x *GenesisResponse_AppState_Validators) GetAccumReward() string { if x != nil { - return x.TimeRem + return x.AccumReward } - return 0 + return "" } -func (x *NetInfoResponse_Peer_ConnectionStatus_Monitor) GetProgress() uint64 { +func (x *GenesisResponse_AppState_Validators) GetAbsentTimes() string { if x != nil { - return x.Progress + return x.AbsentTimes } - return 0 + return "" } -type NetInfoResponse_Peer_ConnectionStatus_Channel struct { +type GenesisResponse_AppState_Candidate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id int64 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` - SendQueueCapacity int64 `protobuf:"varint,1,opt,name=send_queue_capacity,json=sendQueueCapacity,proto3" json:"send_queue_capacity,omitempty"` - SendQueueSize int64 `protobuf:"varint,2,opt,name=send_queue_size,json=sendQueueSize,proto3" json:"send_queue_size,omitempty"` - Priority int64 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"` - RecentlySent int64 `protobuf:"varint,4,opt,name=recently_sent,json=recentlySent,proto3" json:"recently_sent,omitempty"` + Id uint64 `protobuf:"varint,10,opt,name=id,proto3" json:"id,omitempty"` + RewardAddress string `protobuf:"bytes,1,opt,name=reward_address,json=rewardAddress,proto3" json:"reward_address,omitempty"` + OwnerAddress string `protobuf:"bytes,2,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + ControlAddress string `protobuf:"bytes,3,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` + TotalBipStake string `protobuf:"bytes,4,opt,name=total_bip_stake,json=totalBipStake,proto3" json:"total_bip_stake,omitempty"` + PublicKey string `protobuf:"bytes,5,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + Commission uint64 `protobuf:"varint,6,opt,name=commission,proto3" json:"commission,omitempty"` + Stakes []*GenesisResponse_AppState_Candidate_Stake `protobuf:"bytes,7,rep,name=stakes,proto3" json:"stakes,omitempty"` + Updates []*GenesisResponse_AppState_Candidate_Stake `protobuf:"bytes,8,rep,name=updates,proto3" json:"updates,omitempty"` + Status int64 `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"` } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) Reset() { - *x = NetInfoResponse_Peer_ConnectionStatus_Channel{} +func (x *GenesisResponse_AppState_Candidate) Reset() { + *x = GenesisResponse_AppState_Candidate{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[78] + mi := &file_resources_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) String() string { +func (x *GenesisResponse_AppState_Candidate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NetInfoResponse_Peer_ConnectionStatus_Channel) ProtoMessage() {} +func (*GenesisResponse_AppState_Candidate) ProtoMessage() {} -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[78] +func (x *GenesisResponse_AppState_Candidate) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5478,73 +8677,116 @@ func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use NetInfoResponse_Peer_ConnectionStatus_Channel.ProtoReflect.Descriptor instead. -func (*NetInfoResponse_Peer_ConnectionStatus_Channel) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{2, 0, 0, 1} +// Deprecated: Use GenesisResponse_AppState_Candidate.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Candidate) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 1} } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetId() int64 { +func (x *GenesisResponse_AppState_Candidate) GetId() uint64 { if x != nil { return x.Id } return 0 } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetSendQueueCapacity() int64 { +func (x *GenesisResponse_AppState_Candidate) GetRewardAddress() string { if x != nil { - return x.SendQueueCapacity + return x.RewardAddress } - return 0 + return "" } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetSendQueueSize() int64 { +func (x *GenesisResponse_AppState_Candidate) GetOwnerAddress() string { if x != nil { - return x.SendQueueSize + return x.OwnerAddress } - return 0 + return "" } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetPriority() int64 { +func (x *GenesisResponse_AppState_Candidate) GetControlAddress() string { if x != nil { - return x.Priority + return x.ControlAddress + } + return "" +} + +func (x *GenesisResponse_AppState_Candidate) GetTotalBipStake() string { + if x != nil { + return x.TotalBipStake + } + return "" +} + +func (x *GenesisResponse_AppState_Candidate) GetPublicKey() string { + if x != nil { + return x.PublicKey + } + return "" +} + +func (x *GenesisResponse_AppState_Candidate) GetCommission() uint64 { + if x != nil { + return x.Commission } return 0 } -func (x *NetInfoResponse_Peer_ConnectionStatus_Channel) GetRecentlySent() int64 { +func (x *GenesisResponse_AppState_Candidate) GetStakes() []*GenesisResponse_AppState_Candidate_Stake { if x != nil { - return x.RecentlySent + return x.Stakes + } + return nil +} + +func (x *GenesisResponse_AppState_Candidate) GetUpdates() []*GenesisResponse_AppState_Candidate_Stake { + if x != nil { + return x.Updates + } + return nil +} + +func (x *GenesisResponse_AppState_Candidate) GetStatus() int64 { + if x != nil { + return x.Status } return 0 } -type GenesisResponse_ConsensusParams struct { +type GenesisResponse_AppState_Coin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Block *GenesisResponse_ConsensusParams_Block `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"` - Evidence *GenesisResponse_ConsensusParams_Evidence `protobuf:"bytes,2,opt,name=evidence,proto3" json:"evidence,omitempty"` - Validator *GenesisResponse_ConsensusParams_Validator `protobuf:"bytes,3,opt,name=validator,proto3" json:"validator,omitempty"` + Id uint64 `protobuf:"varint,9,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + Volume string `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"` + Crr uint64 `protobuf:"varint,4,opt,name=crr,proto3" json:"crr,omitempty"` + Reserve string `protobuf:"bytes,5,opt,name=reserve,proto3" json:"reserve,omitempty"` + MaxSupply string `protobuf:"bytes,6,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` + Version uint64 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` + OwnerAddress *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` + Mintable bool `protobuf:"varint,10,opt,name=mintable,proto3" json:"mintable,omitempty"` + Burnable bool `protobuf:"varint,11,opt,name=burnable,proto3" json:"burnable,omitempty"` } -func (x *GenesisResponse_ConsensusParams) Reset() { - *x = GenesisResponse_ConsensusParams{} +func (x *GenesisResponse_AppState_Coin) Reset() { + *x = GenesisResponse_AppState_Coin{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[79] + mi := &file_resources_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_ConsensusParams) String() string { +func (x *GenesisResponse_AppState_Coin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_ConsensusParams) ProtoMessage() {} +func (*GenesisResponse_AppState_Coin) ProtoMessage() {} -func (x *GenesisResponse_ConsensusParams) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[79] +func (x *GenesisResponse_AppState_Coin) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5555,194 +8797,203 @@ func (x *GenesisResponse_ConsensusParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_ConsensusParams.ProtoReflect.Descriptor instead. -func (*GenesisResponse_ConsensusParams) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 0} +// Deprecated: Use GenesisResponse_AppState_Coin.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Coin) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 2} } -func (x *GenesisResponse_ConsensusParams) GetBlock() *GenesisResponse_ConsensusParams_Block { +func (x *GenesisResponse_AppState_Coin) GetId() uint64 { if x != nil { - return x.Block + return x.Id } - return nil + return 0 } -func (x *GenesisResponse_ConsensusParams) GetEvidence() *GenesisResponse_ConsensusParams_Evidence { +func (x *GenesisResponse_AppState_Coin) GetName() string { if x != nil { - return x.Evidence + return x.Name } - return nil + return "" } -func (x *GenesisResponse_ConsensusParams) GetValidator() *GenesisResponse_ConsensusParams_Validator { +func (x *GenesisResponse_AppState_Coin) GetSymbol() string { if x != nil { - return x.Validator + return x.Symbol } - return nil -} - -type GenesisResponse_AppState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"` - StartHeight uint64 `protobuf:"varint,1,opt,name=start_height,json=startHeight,proto3" json:"start_height,omitempty"` - Validators []*GenesisResponse_AppState_Validators `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators,omitempty"` - Candidates []*GenesisResponse_AppState_Candidate `protobuf:"bytes,3,rep,name=candidates,proto3" json:"candidates,omitempty"` - Coins []*GenesisResponse_AppState_Coin `protobuf:"bytes,5,rep,name=coins,proto3" json:"coins,omitempty"` - FrozenFunds []*GenesisResponse_AppState_FrozenFund `protobuf:"bytes,6,rep,name=frozen_funds,json=frozenFunds,proto3" json:"frozen_funds,omitempty"` - Waitlist []*GenesisResponse_AppState_Waitlist `protobuf:"bytes,13,rep,name=waitlist,proto3" json:"waitlist,omitempty"` - Accounts []*GenesisResponse_AppState_Account `protobuf:"bytes,14,rep,name=accounts,proto3" json:"accounts,omitempty"` - HaltBlocks []*GenesisResponse_AppState_HaltBlock `protobuf:"bytes,12,rep,name=halt_blocks,json=haltBlocks,proto3" json:"halt_blocks,omitempty"` - UsedChecks []string `protobuf:"bytes,11,rep,name=used_checks,json=usedChecks,proto3" json:"used_checks,omitempty"` - MaxGas uint64 `protobuf:"varint,7,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"` - TotalSlashed string `protobuf:"bytes,8,opt,name=total_slashed,json=totalSlashed,proto3" json:"total_slashed,omitempty"` + return "" } -func (x *GenesisResponse_AppState) Reset() { - *x = GenesisResponse_AppState{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *GenesisResponse_AppState_Coin) GetVolume() string { + if x != nil { + return x.Volume } + return "" } -func (x *GenesisResponse_AppState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisResponse_AppState) ProtoMessage() {} - -func (x *GenesisResponse_AppState) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *GenesisResponse_AppState_Coin) GetCrr() uint64 { + if x != nil { + return x.Crr } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use GenesisResponse_AppState.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1} +func (x *GenesisResponse_AppState_Coin) GetReserve() string { + if x != nil { + return x.Reserve + } + return "" } -func (x *GenesisResponse_AppState) GetNote() string { +func (x *GenesisResponse_AppState_Coin) GetMaxSupply() string { if x != nil { - return x.Note + return x.MaxSupply } return "" } -func (x *GenesisResponse_AppState) GetStartHeight() uint64 { +func (x *GenesisResponse_AppState_Coin) GetVersion() uint64 { if x != nil { - return x.StartHeight + return x.Version } return 0 } -func (x *GenesisResponse_AppState) GetValidators() []*GenesisResponse_AppState_Validators { +func (x *GenesisResponse_AppState_Coin) GetOwnerAddress() *wrapperspb.StringValue { if x != nil { - return x.Validators + return x.OwnerAddress } return nil } -func (x *GenesisResponse_AppState) GetCandidates() []*GenesisResponse_AppState_Candidate { +func (x *GenesisResponse_AppState_Coin) GetMintable() bool { if x != nil { - return x.Candidates + return x.Mintable } - return nil + return false } -func (x *GenesisResponse_AppState) GetCoins() []*GenesisResponse_AppState_Coin { +func (x *GenesisResponse_AppState_Coin) GetBurnable() bool { if x != nil { - return x.Coins + return x.Burnable } - return nil + return false } -func (x *GenesisResponse_AppState) GetFrozenFunds() []*GenesisResponse_AppState_FrozenFund { - if x != nil { - return x.FrozenFunds +type GenesisResponse_AppState_FrozenFund struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + CandidateKey *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=candidate_key,json=candidateKey,proto3" json:"candidate_key,omitempty"` + CandidateId uint64 `protobuf:"varint,6,opt,name=candidate_id,json=candidateId,proto3" json:"candidate_id,omitempty"` + Coin uint64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *GenesisResponse_AppState_FrozenFund) Reset() { + *x = GenesisResponse_AppState_FrozenFund{} + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *GenesisResponse_AppState) GetWaitlist() []*GenesisResponse_AppState_Waitlist { +func (x *GenesisResponse_AppState_FrozenFund) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisResponse_AppState_FrozenFund) ProtoMessage() {} + +func (x *GenesisResponse_AppState_FrozenFund) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenesisResponse_AppState_FrozenFund.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_FrozenFund) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 3} +} + +func (x *GenesisResponse_AppState_FrozenFund) GetHeight() uint64 { if x != nil { - return x.Waitlist + return x.Height } - return nil + return 0 } -func (x *GenesisResponse_AppState) GetAccounts() []*GenesisResponse_AppState_Account { +func (x *GenesisResponse_AppState_FrozenFund) GetAddress() string { if x != nil { - return x.Accounts + return x.Address } - return nil + return "" } -func (x *GenesisResponse_AppState) GetHaltBlocks() []*GenesisResponse_AppState_HaltBlock { +func (x *GenesisResponse_AppState_FrozenFund) GetCandidateKey() *wrapperspb.StringValue { if x != nil { - return x.HaltBlocks + return x.CandidateKey } return nil } -func (x *GenesisResponse_AppState) GetUsedChecks() []string { +func (x *GenesisResponse_AppState_FrozenFund) GetCandidateId() uint64 { if x != nil { - return x.UsedChecks + return x.CandidateId } - return nil + return 0 } -func (x *GenesisResponse_AppState) GetMaxGas() uint64 { +func (x *GenesisResponse_AppState_FrozenFund) GetCoin() uint64 { if x != nil { - return x.MaxGas + return x.Coin } return 0 } -func (x *GenesisResponse_AppState) GetTotalSlashed() string { +func (x *GenesisResponse_AppState_FrozenFund) GetValue() string { if x != nil { - return x.TotalSlashed + return x.Value } return "" } -type GenesisResponse_ConsensusParams_Block struct { +type GenesisResponse_AppState_Waitlist struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MaxBytes int64 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3" json:"max_bytes,omitempty"` - MaxGas int64 `protobuf:"varint,2,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"` - TimeIotaMs int64 `protobuf:"varint,3,opt,name=time_iota_ms,json=timeIotaMs,proto3" json:"time_iota_ms,omitempty"` + CandidateId uint64 `protobuf:"varint,1,opt,name=candidate_id,json=candidateId,proto3" json:"candidate_id,omitempty"` + Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + Coin uint64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` + Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GenesisResponse_ConsensusParams_Block) Reset() { - *x = GenesisResponse_ConsensusParams_Block{} +func (x *GenesisResponse_AppState_Waitlist) Reset() { + *x = GenesisResponse_AppState_Waitlist{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[81] + mi := &file_resources_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_ConsensusParams_Block) String() string { +func (x *GenesisResponse_AppState_Waitlist) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_ConsensusParams_Block) ProtoMessage() {} +func (*GenesisResponse_AppState_Waitlist) ProtoMessage() {} -func (x *GenesisResponse_ConsensusParams_Block) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[81] +func (x *GenesisResponse_AppState_Waitlist) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5753,58 +9004,67 @@ func (x *GenesisResponse_ConsensusParams_Block) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_ConsensusParams_Block.ProtoReflect.Descriptor instead. -func (*GenesisResponse_ConsensusParams_Block) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 0, 0} +// Deprecated: Use GenesisResponse_AppState_Waitlist.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Waitlist) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 4} } -func (x *GenesisResponse_ConsensusParams_Block) GetMaxBytes() int64 { +func (x *GenesisResponse_AppState_Waitlist) GetCandidateId() uint64 { if x != nil { - return x.MaxBytes + return x.CandidateId } return 0 } -func (x *GenesisResponse_ConsensusParams_Block) GetMaxGas() int64 { +func (x *GenesisResponse_AppState_Waitlist) GetOwner() string { if x != nil { - return x.MaxGas + return x.Owner } - return 0 + return "" } -func (x *GenesisResponse_ConsensusParams_Block) GetTimeIotaMs() int64 { +func (x *GenesisResponse_AppState_Waitlist) GetCoin() uint64 { if x != nil { - return x.TimeIotaMs + return x.Coin } return 0 } -type GenesisResponse_ConsensusParams_Evidence struct { +func (x *GenesisResponse_AppState_Waitlist) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type GenesisResponse_AppState_Account struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MaxAgeNumBlocks int64 `protobuf:"varint,1,opt,name=max_age_num_blocks,json=maxAgeNumBlocks,proto3" json:"max_age_num_blocks,omitempty"` - MaxAgeDuration int64 `protobuf:"varint,2,opt,name=max_age_duration,json=maxAgeDuration,proto3" json:"max_age_duration,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Balance []*GenesisResponse_AppState_Account_Balance `protobuf:"bytes,2,rep,name=balance,proto3" json:"balance,omitempty"` + Nonce uint64 `protobuf:"varint,3,opt,name=nonce,proto3" json:"nonce,omitempty"` + MultisigData *GenesisResponse_AppState_Account_MultisigData `protobuf:"bytes,4,opt,name=multisig_data,json=multisigData,proto3" json:"multisig_data,omitempty"` } -func (x *GenesisResponse_ConsensusParams_Evidence) Reset() { - *x = GenesisResponse_ConsensusParams_Evidence{} +func (x *GenesisResponse_AppState_Account) Reset() { + *x = GenesisResponse_AppState_Account{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[82] + mi := &file_resources_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_ConsensusParams_Evidence) String() string { +func (x *GenesisResponse_AppState_Account) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_ConsensusParams_Evidence) ProtoMessage() {} +func (*GenesisResponse_AppState_Account) ProtoMessage() {} -func (x *GenesisResponse_ConsensusParams_Evidence) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[82] +func (x *GenesisResponse_AppState_Account) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5815,50 +9075,65 @@ func (x *GenesisResponse_ConsensusParams_Evidence) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_ConsensusParams_Evidence.ProtoReflect.Descriptor instead. -func (*GenesisResponse_ConsensusParams_Evidence) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 0, 1} +// Deprecated: Use GenesisResponse_AppState_Account.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Account) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 5} } -func (x *GenesisResponse_ConsensusParams_Evidence) GetMaxAgeNumBlocks() int64 { +func (x *GenesisResponse_AppState_Account) GetAddress() string { if x != nil { - return x.MaxAgeNumBlocks + return x.Address + } + return "" +} + +func (x *GenesisResponse_AppState_Account) GetBalance() []*GenesisResponse_AppState_Account_Balance { + if x != nil { + return x.Balance + } + return nil +} + +func (x *GenesisResponse_AppState_Account) GetNonce() uint64 { + if x != nil { + return x.Nonce } return 0 } -func (x *GenesisResponse_ConsensusParams_Evidence) GetMaxAgeDuration() int64 { +func (x *GenesisResponse_AppState_Account) GetMultisigData() *GenesisResponse_AppState_Account_MultisigData { if x != nil { - return x.MaxAgeDuration + return x.MultisigData } - return 0 + return nil } -type GenesisResponse_ConsensusParams_Validator struct { +type GenesisResponse_AppState_HaltBlock struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PubKeyTypes []string `protobuf:"bytes,1,rep,name=pub_key_types,json=pubKeyTypes,proto3" json:"pub_key_types,omitempty"` + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + CandidateKey string `protobuf:"bytes,2,opt,name=candidate_key,json=candidateKey,proto3" json:"candidate_key,omitempty"` } -func (x *GenesisResponse_ConsensusParams_Validator) Reset() { - *x = GenesisResponse_ConsensusParams_Validator{} +func (x *GenesisResponse_AppState_HaltBlock) Reset() { + *x = GenesisResponse_AppState_HaltBlock{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[83] + mi := &file_resources_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_ConsensusParams_Validator) String() string { +func (x *GenesisResponse_AppState_HaltBlock) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_ConsensusParams_Validator) ProtoMessage() {} +func (*GenesisResponse_AppState_HaltBlock) ProtoMessage() {} -func (x *GenesisResponse_ConsensusParams_Validator) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[83] +func (x *GenesisResponse_AppState_HaltBlock) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5869,46 +9144,54 @@ func (x *GenesisResponse_ConsensusParams_Validator) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_ConsensusParams_Validator.ProtoReflect.Descriptor instead. -func (*GenesisResponse_ConsensusParams_Validator) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 0, 2} +// Deprecated: Use GenesisResponse_AppState_HaltBlock.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_HaltBlock) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 6} } -func (x *GenesisResponse_ConsensusParams_Validator) GetPubKeyTypes() []string { +func (x *GenesisResponse_AppState_HaltBlock) GetHeight() uint64 { if x != nil { - return x.PubKeyTypes + return x.Height } - return nil + return 0 } -type GenesisResponse_AppState_Validators struct { +func (x *GenesisResponse_AppState_HaltBlock) GetCandidateKey() string { + if x != nil { + return x.CandidateKey + } + return "" +} + +type GenesisResponse_AppState_Pool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - TotalBipStake string `protobuf:"bytes,4,opt,name=total_bip_stake,json=totalBipStake,proto3" json:"total_bip_stake,omitempty"` - PublicKey string `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - AccumReward string `protobuf:"bytes,2,opt,name=accum_reward,json=accumReward,proto3" json:"accum_reward,omitempty"` - AbsentTimes string `protobuf:"bytes,3,opt,name=absent_times,json=absentTimes,proto3" json:"absent_times,omitempty"` + Coin0 uint64 `protobuf:"varint,1,opt,name=coin0,proto3" json:"coin0,omitempty"` + Coin1 uint64 `protobuf:"varint,2,opt,name=coin1,proto3" json:"coin1,omitempty"` + Reserve0 string `protobuf:"bytes,3,opt,name=reserve0,proto3" json:"reserve0,omitempty"` + Reserve1 string `protobuf:"bytes,4,opt,name=reserve1,proto3" json:"reserve1,omitempty"` + Id uint64 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` } -func (x *GenesisResponse_AppState_Validators) Reset() { - *x = GenesisResponse_AppState_Validators{} +func (x *GenesisResponse_AppState_Pool) Reset() { + *x = GenesisResponse_AppState_Pool{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[84] + mi := &file_resources_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_AppState_Validators) String() string { +func (x *GenesisResponse_AppState_Pool) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_AppState_Validators) ProtoMessage() {} +func (*GenesisResponse_AppState_Pool) ProtoMessage() {} -func (x *GenesisResponse_AppState_Validators) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[84] +func (x *GenesisResponse_AppState_Pool) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5919,73 +9202,113 @@ func (x *GenesisResponse_AppState_Validators) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_AppState_Validators.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_Validators) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 0} +// Deprecated: Use GenesisResponse_AppState_Pool.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Pool) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 7} } -func (x *GenesisResponse_AppState_Validators) GetTotalBipStake() string { +func (x *GenesisResponse_AppState_Pool) GetCoin0() uint64 { if x != nil { - return x.TotalBipStake + return x.Coin0 } - return "" + return 0 } -func (x *GenesisResponse_AppState_Validators) GetPublicKey() string { +func (x *GenesisResponse_AppState_Pool) GetCoin1() uint64 { if x != nil { - return x.PublicKey + return x.Coin1 } - return "" + return 0 } -func (x *GenesisResponse_AppState_Validators) GetAccumReward() string { +func (x *GenesisResponse_AppState_Pool) GetReserve0() string { if x != nil { - return x.AccumReward + return x.Reserve0 } return "" } -func (x *GenesisResponse_AppState_Validators) GetAbsentTimes() string { +func (x *GenesisResponse_AppState_Pool) GetReserve1() string { if x != nil { - return x.AbsentTimes + return x.Reserve1 } return "" } -type GenesisResponse_AppState_Candidate struct { +func (x *GenesisResponse_AppState_Pool) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type GenesisResponse_AppState_Commission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint64 `protobuf:"varint,10,opt,name=id,proto3" json:"id,omitempty"` - RewardAddress string `protobuf:"bytes,1,opt,name=reward_address,json=rewardAddress,proto3" json:"reward_address,omitempty"` - OwnerAddress string `protobuf:"bytes,2,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` - ControlAddress string `protobuf:"bytes,3,opt,name=control_address,json=controlAddress,proto3" json:"control_address,omitempty"` - TotalBipStake string `protobuf:"bytes,4,opt,name=total_bip_stake,json=totalBipStake,proto3" json:"total_bip_stake,omitempty"` - PublicKey string `protobuf:"bytes,5,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - Commission uint64 `protobuf:"varint,6,opt,name=commission,proto3" json:"commission,omitempty"` - Stakes []*GenesisResponse_AppState_Candidate_Stake `protobuf:"bytes,7,rep,name=stakes,proto3" json:"stakes,omitempty"` - Updates []*GenesisResponse_AppState_Candidate_Stake `protobuf:"bytes,8,rep,name=updates,proto3" json:"updates,omitempty"` - Status int64 `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"` -} - -func (x *GenesisResponse_AppState_Candidate) Reset() { - *x = GenesisResponse_AppState_Candidate{} + Coin uint64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` + PayloadByte string `protobuf:"bytes,4,opt,name=payload_byte,json=payloadByte,proto3" json:"payload_byte,omitempty"` + Send string `protobuf:"bytes,5,opt,name=send,proto3" json:"send,omitempty"` + BuyBancor string `protobuf:"bytes,38,opt,name=buy_bancor,json=buyBancor,proto3" json:"buy_bancor,omitempty"` + SellBancor string `protobuf:"bytes,39,opt,name=sell_bancor,json=sellBancor,proto3" json:"sell_bancor,omitempty"` + SellAllBancor string `protobuf:"bytes,40,opt,name=sell_all_bancor,json=sellAllBancor,proto3" json:"sell_all_bancor,omitempty"` + BuyPoolBase string `protobuf:"bytes,41,opt,name=buy_pool_base,json=buyPoolBase,proto3" json:"buy_pool_base,omitempty"` + BuyPoolDelta string `protobuf:"bytes,53,opt,name=buy_pool_delta,json=buyPoolDelta,proto3" json:"buy_pool_delta,omitempty"` + SellPoolBase string `protobuf:"bytes,42,opt,name=sell_pool_base,json=sellPoolBase,proto3" json:"sell_pool_base,omitempty"` + SellPoolDelta string `protobuf:"bytes,54,opt,name=sell_pool_delta,json=sellPoolDelta,proto3" json:"sell_pool_delta,omitempty"` + SellAllPoolBase string `protobuf:"bytes,43,opt,name=sell_all_pool_base,json=sellAllPoolBase,proto3" json:"sell_all_pool_base,omitempty"` + SellAllPoolDelta string `protobuf:"bytes,55,opt,name=sell_all_pool_delta,json=sellAllPoolDelta,proto3" json:"sell_all_pool_delta,omitempty"` + CreateTicker3 string `protobuf:"bytes,7,opt,name=create_ticker3,json=createTicker3,proto3" json:"create_ticker3,omitempty"` + CreateTicker4 string `protobuf:"bytes,8,opt,name=create_ticker4,json=createTicker4,proto3" json:"create_ticker4,omitempty"` + CreateTicker5 string `protobuf:"bytes,9,opt,name=create_ticker5,json=createTicker5,proto3" json:"create_ticker5,omitempty"` + CreateTicker6 string `protobuf:"bytes,10,opt,name=create_ticker6,json=createTicker6,proto3" json:"create_ticker6,omitempty"` + CreateTicker7_10 string `protobuf:"bytes,11,opt,name=create_ticker7_10,json=createTicker710,proto3" json:"create_ticker7_10,omitempty"` + CreateCoin string `protobuf:"bytes,34,opt,name=create_coin,json=createCoin,proto3" json:"create_coin,omitempty"` + CreateToken string `protobuf:"bytes,35,opt,name=create_token,json=createToken,proto3" json:"create_token,omitempty"` + RecreateCoin string `protobuf:"bytes,36,opt,name=recreate_coin,json=recreateCoin,proto3" json:"recreate_coin,omitempty"` + RecreateToken string `protobuf:"bytes,37,opt,name=recreate_token,json=recreateToken,proto3" json:"recreate_token,omitempty"` + DeclareCandidacy string `protobuf:"bytes,13,opt,name=declare_candidacy,json=declareCandidacy,proto3" json:"declare_candidacy,omitempty"` + Delegate string `protobuf:"bytes,14,opt,name=delegate,proto3" json:"delegate,omitempty"` + Unbond string `protobuf:"bytes,15,opt,name=unbond,proto3" json:"unbond,omitempty"` + RedeemCheck string `protobuf:"bytes,16,opt,name=redeem_check,json=redeemCheck,proto3" json:"redeem_check,omitempty"` + SetCandidateOn string `protobuf:"bytes,44,opt,name=set_candidate_on,json=setCandidateOn,proto3" json:"set_candidate_on,omitempty"` + SetCandidateOff string `protobuf:"bytes,45,opt,name=set_candidate_off,json=setCandidateOff,proto3" json:"set_candidate_off,omitempty"` + CreateMultisig string `protobuf:"bytes,18,opt,name=create_multisig,json=createMultisig,proto3" json:"create_multisig,omitempty"` + MultisendBase string `protobuf:"bytes,51,opt,name=multisend_base,json=multisendBase,proto3" json:"multisend_base,omitempty"` + MultisendDelta string `protobuf:"bytes,52,opt,name=multisend_delta,json=multisendDelta,proto3" json:"multisend_delta,omitempty"` + EditCandidate string `protobuf:"bytes,20,opt,name=edit_candidate,json=editCandidate,proto3" json:"edit_candidate,omitempty"` + SetHaltBlock string `protobuf:"bytes,21,opt,name=set_halt_block,json=setHaltBlock,proto3" json:"set_halt_block,omitempty"` + EditTickerOwner string `protobuf:"bytes,22,opt,name=edit_ticker_owner,json=editTickerOwner,proto3" json:"edit_ticker_owner,omitempty"` + EditMultisig string `protobuf:"bytes,23,opt,name=edit_multisig,json=editMultisig,proto3" json:"edit_multisig,omitempty"` + EditCandidatePublicKey string `protobuf:"bytes,25,opt,name=edit_candidate_public_key,json=editCandidatePublicKey,proto3" json:"edit_candidate_public_key,omitempty"` + CreateSwapPool string `protobuf:"bytes,48,opt,name=create_swap_pool,json=createSwapPool,proto3" json:"create_swap_pool,omitempty"` + AddLiquidity string `protobuf:"bytes,49,opt,name=add_liquidity,json=addLiquidity,proto3" json:"add_liquidity,omitempty"` + RemoveLiquidity string `protobuf:"bytes,50,opt,name=remove_liquidity,json=removeLiquidity,proto3" json:"remove_liquidity,omitempty"` + EditCandidateCommission string `protobuf:"bytes,28,opt,name=edit_candidate_commission,json=editCandidateCommission,proto3" json:"edit_candidate_commission,omitempty"` + MintToken string `protobuf:"bytes,46,opt,name=mint_token,json=mintToken,proto3" json:"mint_token,omitempty"` + BurnToken string `protobuf:"bytes,47,opt,name=burn_token,json=burnToken,proto3" json:"burn_token,omitempty"` + VoteCommission string `protobuf:"bytes,31,opt,name=vote_commission,json=voteCommission,proto3" json:"vote_commission,omitempty"` + VoteUpdate string `protobuf:"bytes,32,opt,name=vote_update,json=voteUpdate,proto3" json:"vote_update,omitempty"` +} + +func (x *GenesisResponse_AppState_Commission) Reset() { + *x = GenesisResponse_AppState_Commission{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[85] + mi := &file_resources_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_AppState_Candidate) String() string { +func (x *GenesisResponse_AppState_Commission) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_AppState_Candidate) ProtoMessage() {} +func (*GenesisResponse_AppState_Commission) ProtoMessage() {} -func (x *GenesisResponse_AppState_Candidate) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[85] +func (x *GenesisResponse_AppState_Commission) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5996,447 +9319,339 @@ func (x *GenesisResponse_AppState_Candidate) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_AppState_Candidate.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_Candidate) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 1} +// Deprecated: Use GenesisResponse_AppState_Commission.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Commission) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 8} } -func (x *GenesisResponse_AppState_Candidate) GetId() uint64 { +func (x *GenesisResponse_AppState_Commission) GetCoin() uint64 { if x != nil { - return x.Id + return x.Coin } return 0 } -func (x *GenesisResponse_AppState_Candidate) GetRewardAddress() string { +func (x *GenesisResponse_AppState_Commission) GetPayloadByte() string { if x != nil { - return x.RewardAddress + return x.PayloadByte } return "" } -func (x *GenesisResponse_AppState_Candidate) GetOwnerAddress() string { +func (x *GenesisResponse_AppState_Commission) GetSend() string { if x != nil { - return x.OwnerAddress + return x.Send } return "" } -func (x *GenesisResponse_AppState_Candidate) GetControlAddress() string { +func (x *GenesisResponse_AppState_Commission) GetBuyBancor() string { if x != nil { - return x.ControlAddress + return x.BuyBancor } return "" } -func (x *GenesisResponse_AppState_Candidate) GetTotalBipStake() string { +func (x *GenesisResponse_AppState_Commission) GetSellBancor() string { if x != nil { - return x.TotalBipStake + return x.SellBancor } return "" } -func (x *GenesisResponse_AppState_Candidate) GetPublicKey() string { +func (x *GenesisResponse_AppState_Commission) GetSellAllBancor() string { if x != nil { - return x.PublicKey + return x.SellAllBancor } return "" } -func (x *GenesisResponse_AppState_Candidate) GetCommission() uint64 { +func (x *GenesisResponse_AppState_Commission) GetBuyPoolBase() string { if x != nil { - return x.Commission + return x.BuyPoolBase } - return 0 + return "" } -func (x *GenesisResponse_AppState_Candidate) GetStakes() []*GenesisResponse_AppState_Candidate_Stake { +func (x *GenesisResponse_AppState_Commission) GetBuyPoolDelta() string { if x != nil { - return x.Stakes + return x.BuyPoolDelta } - return nil + return "" } -func (x *GenesisResponse_AppState_Candidate) GetUpdates() []*GenesisResponse_AppState_Candidate_Stake { +func (x *GenesisResponse_AppState_Commission) GetSellPoolBase() string { if x != nil { - return x.Updates + return x.SellPoolBase } - return nil + return "" } -func (x *GenesisResponse_AppState_Candidate) GetStatus() int64 { +func (x *GenesisResponse_AppState_Commission) GetSellPoolDelta() string { if x != nil { - return x.Status - } - return 0 -} - -type GenesisResponse_AppState_Coin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id uint64 `protobuf:"varint,9,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` - Volume string `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"` - Crr uint64 `protobuf:"varint,4,opt,name=crr,proto3" json:"crr,omitempty"` - Reserve string `protobuf:"bytes,5,opt,name=reserve,proto3" json:"reserve,omitempty"` - MaxSupply string `protobuf:"bytes,6,opt,name=max_supply,json=maxSupply,proto3" json:"max_supply,omitempty"` - Version uint64 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` - OwnerAddress *wrapperspb.StringValue `protobuf:"bytes,8,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address,omitempty"` -} - -func (x *GenesisResponse_AppState_Coin) Reset() { - *x = GenesisResponse_AppState_Coin{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GenesisResponse_AppState_Coin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisResponse_AppState_Coin) ProtoMessage() {} - -func (x *GenesisResponse_AppState_Coin) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.SellPoolDelta } - return mi.MessageOf(x) -} - -// Deprecated: Use GenesisResponse_AppState_Coin.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_Coin) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 2} + return "" } -func (x *GenesisResponse_AppState_Coin) GetId() uint64 { +func (x *GenesisResponse_AppState_Commission) GetSellAllPoolBase() string { if x != nil { - return x.Id + return x.SellAllPoolBase } - return 0 + return "" } -func (x *GenesisResponse_AppState_Coin) GetName() string { +func (x *GenesisResponse_AppState_Commission) GetSellAllPoolDelta() string { if x != nil { - return x.Name + return x.SellAllPoolDelta } return "" } -func (x *GenesisResponse_AppState_Coin) GetSymbol() string { +func (x *GenesisResponse_AppState_Commission) GetCreateTicker3() string { if x != nil { - return x.Symbol + return x.CreateTicker3 } return "" } -func (x *GenesisResponse_AppState_Coin) GetVolume() string { +func (x *GenesisResponse_AppState_Commission) GetCreateTicker4() string { if x != nil { - return x.Volume + return x.CreateTicker4 } return "" } -func (x *GenesisResponse_AppState_Coin) GetCrr() uint64 { +func (x *GenesisResponse_AppState_Commission) GetCreateTicker5() string { if x != nil { - return x.Crr + return x.CreateTicker5 } - return 0 + return "" } -func (x *GenesisResponse_AppState_Coin) GetReserve() string { +func (x *GenesisResponse_AppState_Commission) GetCreateTicker6() string { if x != nil { - return x.Reserve + return x.CreateTicker6 } return "" } -func (x *GenesisResponse_AppState_Coin) GetMaxSupply() string { +func (x *GenesisResponse_AppState_Commission) GetCreateTicker7_10() string { if x != nil { - return x.MaxSupply + return x.CreateTicker7_10 } return "" } -func (x *GenesisResponse_AppState_Coin) GetVersion() uint64 { +func (x *GenesisResponse_AppState_Commission) GetCreateCoin() string { if x != nil { - return x.Version + return x.CreateCoin } - return 0 + return "" } -func (x *GenesisResponse_AppState_Coin) GetOwnerAddress() *wrapperspb.StringValue { +func (x *GenesisResponse_AppState_Commission) GetCreateToken() string { if x != nil { - return x.OwnerAddress - } - return nil -} - -type GenesisResponse_AppState_FrozenFund struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Height uint64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - CandidateKey *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=candidate_key,json=candidateKey,proto3" json:"candidate_key,omitempty"` - CandidateId uint64 `protobuf:"varint,6,opt,name=candidate_id,json=candidateId,proto3" json:"candidate_id,omitempty"` - Coin uint64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` - Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *GenesisResponse_AppState_FrozenFund) Reset() { - *x = GenesisResponse_AppState_FrozenFund{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GenesisResponse_AppState_FrozenFund) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisResponse_AppState_FrozenFund) ProtoMessage() {} - -func (x *GenesisResponse_AppState_FrozenFund) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms + return x.CreateToken } - return mi.MessageOf(x) -} - -// Deprecated: Use GenesisResponse_AppState_FrozenFund.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_FrozenFund) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 3} + return "" } -func (x *GenesisResponse_AppState_FrozenFund) GetHeight() uint64 { +func (x *GenesisResponse_AppState_Commission) GetRecreateCoin() string { if x != nil { - return x.Height + return x.RecreateCoin } - return 0 + return "" } -func (x *GenesisResponse_AppState_FrozenFund) GetAddress() string { +func (x *GenesisResponse_AppState_Commission) GetRecreateToken() string { if x != nil { - return x.Address + return x.RecreateToken } return "" } -func (x *GenesisResponse_AppState_FrozenFund) GetCandidateKey() *wrapperspb.StringValue { +func (x *GenesisResponse_AppState_Commission) GetDeclareCandidacy() string { if x != nil { - return x.CandidateKey + return x.DeclareCandidacy } - return nil + return "" } -func (x *GenesisResponse_AppState_FrozenFund) GetCandidateId() uint64 { +func (x *GenesisResponse_AppState_Commission) GetDelegate() string { if x != nil { - return x.CandidateId + return x.Delegate } - return 0 + return "" } -func (x *GenesisResponse_AppState_FrozenFund) GetCoin() uint64 { +func (x *GenesisResponse_AppState_Commission) GetUnbond() string { if x != nil { - return x.Coin + return x.Unbond } - return 0 + return "" } -func (x *GenesisResponse_AppState_FrozenFund) GetValue() string { +func (x *GenesisResponse_AppState_Commission) GetRedeemCheck() string { if x != nil { - return x.Value + return x.RedeemCheck } return "" } -type GenesisResponse_AppState_Waitlist struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CandidateId uint64 `protobuf:"varint,1,opt,name=candidate_id,json=candidateId,proto3" json:"candidate_id,omitempty"` - Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - Coin uint64 `protobuf:"varint,3,opt,name=coin,proto3" json:"coin,omitempty"` - Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` +func (x *GenesisResponse_AppState_Commission) GetSetCandidateOn() string { + if x != nil { + return x.SetCandidateOn + } + return "" } -func (x *GenesisResponse_AppState_Waitlist) Reset() { - *x = GenesisResponse_AppState_Waitlist{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *GenesisResponse_AppState_Commission) GetSetCandidateOff() string { + if x != nil { + return x.SetCandidateOff } + return "" } -func (x *GenesisResponse_AppState_Waitlist) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *GenesisResponse_AppState_Commission) GetCreateMultisig() string { + if x != nil { + return x.CreateMultisig + } + return "" } -func (*GenesisResponse_AppState_Waitlist) ProtoMessage() {} - -func (x *GenesisResponse_AppState_Waitlist) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[88] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *GenesisResponse_AppState_Commission) GetMultisendBase() string { + if x != nil { + return x.MultisendBase } - return mi.MessageOf(x) + return "" } -// Deprecated: Use GenesisResponse_AppState_Waitlist.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_Waitlist) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 4} +func (x *GenesisResponse_AppState_Commission) GetMultisendDelta() string { + if x != nil { + return x.MultisendDelta + } + return "" } -func (x *GenesisResponse_AppState_Waitlist) GetCandidateId() uint64 { +func (x *GenesisResponse_AppState_Commission) GetEditCandidate() string { if x != nil { - return x.CandidateId + return x.EditCandidate } - return 0 + return "" } -func (x *GenesisResponse_AppState_Waitlist) GetOwner() string { +func (x *GenesisResponse_AppState_Commission) GetSetHaltBlock() string { if x != nil { - return x.Owner + return x.SetHaltBlock } return "" } -func (x *GenesisResponse_AppState_Waitlist) GetCoin() uint64 { +func (x *GenesisResponse_AppState_Commission) GetEditTickerOwner() string { if x != nil { - return x.Coin + return x.EditTickerOwner } - return 0 + return "" } -func (x *GenesisResponse_AppState_Waitlist) GetValue() string { +func (x *GenesisResponse_AppState_Commission) GetEditMultisig() string { if x != nil { - return x.Value + return x.EditMultisig } return "" } -type GenesisResponse_AppState_Account struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Balance []*GenesisResponse_AppState_Account_Balance `protobuf:"bytes,2,rep,name=balance,proto3" json:"balance,omitempty"` - Nonce uint64 `protobuf:"varint,3,opt,name=nonce,proto3" json:"nonce,omitempty"` - MultisigData *GenesisResponse_AppState_Account_MultisigData `protobuf:"bytes,4,opt,name=multisig_data,json=multisigData,proto3" json:"multisig_data,omitempty"` +func (x *GenesisResponse_AppState_Commission) GetEditCandidatePublicKey() string { + if x != nil { + return x.EditCandidatePublicKey + } + return "" } -func (x *GenesisResponse_AppState_Account) Reset() { - *x = GenesisResponse_AppState_Account{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *GenesisResponse_AppState_Commission) GetCreateSwapPool() string { + if x != nil { + return x.CreateSwapPool } + return "" } -func (x *GenesisResponse_AppState_Account) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *GenesisResponse_AppState_Commission) GetAddLiquidity() string { + if x != nil { + return x.AddLiquidity + } + return "" } -func (*GenesisResponse_AppState_Account) ProtoMessage() {} - -func (x *GenesisResponse_AppState_Account) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[89] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *GenesisResponse_AppState_Commission) GetRemoveLiquidity() string { + if x != nil { + return x.RemoveLiquidity } - return mi.MessageOf(x) + return "" } -// Deprecated: Use GenesisResponse_AppState_Account.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_Account) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 5} +func (x *GenesisResponse_AppState_Commission) GetEditCandidateCommission() string { + if x != nil { + return x.EditCandidateCommission + } + return "" } -func (x *GenesisResponse_AppState_Account) GetAddress() string { +func (x *GenesisResponse_AppState_Commission) GetMintToken() string { if x != nil { - return x.Address + return x.MintToken } return "" } -func (x *GenesisResponse_AppState_Account) GetBalance() []*GenesisResponse_AppState_Account_Balance { +func (x *GenesisResponse_AppState_Commission) GetBurnToken() string { if x != nil { - return x.Balance + return x.BurnToken } - return nil + return "" } -func (x *GenesisResponse_AppState_Account) GetNonce() uint64 { +func (x *GenesisResponse_AppState_Commission) GetVoteCommission() string { if x != nil { - return x.Nonce + return x.VoteCommission } - return 0 + return "" } -func (x *GenesisResponse_AppState_Account) GetMultisigData() *GenesisResponse_AppState_Account_MultisigData { +func (x *GenesisResponse_AppState_Commission) GetVoteUpdate() string { if x != nil { - return x.MultisigData + return x.VoteUpdate } - return nil + return "" } -type GenesisResponse_AppState_HaltBlock struct { +type GenesisResponse_AppState_CommissionVote struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - CandidateKey string `protobuf:"bytes,2,opt,name=candidate_key,json=candidateKey,proto3" json:"candidate_key,omitempty"` + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Votes []string `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes,omitempty"` + Commission *GenesisResponse_AppState_Commission `protobuf:"bytes,3,opt,name=commission,proto3" json:"commission,omitempty"` } -func (x *GenesisResponse_AppState_HaltBlock) Reset() { - *x = GenesisResponse_AppState_HaltBlock{} +func (x *GenesisResponse_AppState_CommissionVote) Reset() { + *x = GenesisResponse_AppState_CommissionVote{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[90] + mi := &file_resources_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GenesisResponse_AppState_HaltBlock) String() string { +func (x *GenesisResponse_AppState_CommissionVote) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisResponse_AppState_HaltBlock) ProtoMessage() {} +func (*GenesisResponse_AppState_CommissionVote) ProtoMessage() {} -func (x *GenesisResponse_AppState_HaltBlock) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[90] +func (x *GenesisResponse_AppState_CommissionVote) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6447,23 +9662,30 @@ func (x *GenesisResponse_AppState_HaltBlock) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GenesisResponse_AppState_HaltBlock.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_HaltBlock) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 6} +// Deprecated: Use GenesisResponse_AppState_CommissionVote.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_CommissionVote) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 9} } -func (x *GenesisResponse_AppState_HaltBlock) GetHeight() uint64 { +func (x *GenesisResponse_AppState_CommissionVote) GetHeight() uint64 { if x != nil { return x.Height } return 0 } -func (x *GenesisResponse_AppState_HaltBlock) GetCandidateKey() string { +func (x *GenesisResponse_AppState_CommissionVote) GetVotes() []string { if x != nil { - return x.CandidateKey + return x.Votes } - return "" + return nil +} + +func (x *GenesisResponse_AppState_CommissionVote) GetCommission() *GenesisResponse_AppState_Commission { + if x != nil { + return x.Commission + } + return nil } type GenesisResponse_AppState_Candidate_Stake struct { @@ -6480,7 +9702,7 @@ type GenesisResponse_AppState_Candidate_Stake struct { func (x *GenesisResponse_AppState_Candidate_Stake) Reset() { *x = GenesisResponse_AppState_Candidate_Stake{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[91] + mi := &file_resources_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6493,7 +9715,7 @@ func (x *GenesisResponse_AppState_Candidate_Stake) String() string { func (*GenesisResponse_AppState_Candidate_Stake) ProtoMessage() {} func (x *GenesisResponse_AppState_Candidate_Stake) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[91] + mi := &file_resources_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6506,7 +9728,7 @@ func (x *GenesisResponse_AppState_Candidate_Stake) ProtoReflect() protoreflect.M // Deprecated: Use GenesisResponse_AppState_Candidate_Stake.ProtoReflect.Descriptor instead. func (*GenesisResponse_AppState_Candidate_Stake) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 1, 0} + return file_resources_proto_rawDescGZIP(), []int{17, 1, 1, 0} } func (x *GenesisResponse_AppState_Candidate_Stake) GetOwner() string { @@ -6549,7 +9771,7 @@ type GenesisResponse_AppState_Account_Balance struct { func (x *GenesisResponse_AppState_Account_Balance) Reset() { *x = GenesisResponse_AppState_Account_Balance{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[92] + mi := &file_resources_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6562,7 +9784,7 @@ func (x *GenesisResponse_AppState_Account_Balance) String() string { func (*GenesisResponse_AppState_Account_Balance) ProtoMessage() {} func (x *GenesisResponse_AppState_Account_Balance) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[92] + mi := &file_resources_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6575,7 +9797,7 @@ func (x *GenesisResponse_AppState_Account_Balance) ProtoReflect() protoreflect.M // Deprecated: Use GenesisResponse_AppState_Account_Balance.ProtoReflect.Descriptor instead. func (*GenesisResponse_AppState_Account_Balance) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 5, 0} + return file_resources_proto_rawDescGZIP(), []int{17, 1, 5, 0} } func (x *GenesisResponse_AppState_Account_Balance) GetCoin() uint64 { @@ -6604,208 +9826,57 @@ type GenesisResponse_AppState_Account_MultisigData struct { func (x *GenesisResponse_AppState_Account_MultisigData) Reset() { *x = GenesisResponse_AppState_Account_MultisigData{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GenesisResponse_AppState_Account_MultisigData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisResponse_AppState_Account_MultisigData) ProtoMessage() {} - -func (x *GenesisResponse_AppState_Account_MultisigData) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GenesisResponse_AppState_Account_MultisigData.ProtoReflect.Descriptor instead. -func (*GenesisResponse_AppState_Account_MultisigData) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{4, 1, 5, 1} -} - -func (x *GenesisResponse_AppState_Account_MultisigData) GetThreshold() uint64 { - if x != nil { - return x.Threshold - } - return 0 -} - -func (x *GenesisResponse_AppState_Account_MultisigData) GetWeights() []uint64 { - if x != nil { - return x.Weights - } - return nil -} - -func (x *GenesisResponse_AppState_Account_MultisigData) GetAddresses() []string { - if x != nil { - return x.Addresses - } - return nil -} - -type BlockResponse_Transaction struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` - RawTx string `protobuf:"bytes,2,opt,name=raw_tx,json=rawTx,proto3" json:"raw_tx,omitempty"` - From string `protobuf:"bytes,3,opt,name=from,proto3" json:"from,omitempty"` - Nonce uint64 `protobuf:"varint,4,opt,name=nonce,proto3" json:"nonce,omitempty"` - GasPrice uint64 `protobuf:"varint,5,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` - Type uint64 `protobuf:"varint,6,opt,name=type,proto3" json:"type,omitempty"` - Data *anypb.Any `protobuf:"bytes,7,opt,name=data,proto3" json:"data,omitempty"` - Payload []byte `protobuf:"bytes,8,opt,name=payload,proto3" json:"payload,omitempty"` - ServiceData []byte `protobuf:"bytes,9,opt,name=service_data,json=serviceData,proto3" json:"service_data,omitempty"` - Gas uint64 `protobuf:"varint,10,opt,name=gas,proto3" json:"gas,omitempty"` - GasCoin *Coin `protobuf:"bytes,11,opt,name=gas_coin,json=gasCoin,proto3" json:"gas_coin,omitempty"` - Tags map[string]string `protobuf:"bytes,12,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Code uint64 `protobuf:"varint,13,opt,name=code,proto3" json:"code,omitempty"` - Log string `protobuf:"bytes,14,opt,name=log,proto3" json:"log,omitempty"` -} - -func (x *BlockResponse_Transaction) Reset() { - *x = BlockResponse_Transaction{} - if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockResponse_Transaction) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockResponse_Transaction) ProtoMessage() {} - -func (x *BlockResponse_Transaction) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[94] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockResponse_Transaction.ProtoReflect.Descriptor instead. -func (*BlockResponse_Transaction) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{7, 0} -} - -func (x *BlockResponse_Transaction) GetHash() string { - if x != nil { - return x.Hash - } - return "" -} - -func (x *BlockResponse_Transaction) GetRawTx() string { - if x != nil { - return x.RawTx - } - return "" -} - -func (x *BlockResponse_Transaction) GetFrom() string { - if x != nil { - return x.From - } - return "" -} - -func (x *BlockResponse_Transaction) GetNonce() uint64 { - if x != nil { - return x.Nonce - } - return 0 -} - -func (x *BlockResponse_Transaction) GetGasPrice() uint64 { - if x != nil { - return x.GasPrice - } - return 0 -} - -func (x *BlockResponse_Transaction) GetType() uint64 { - if x != nil { - return x.Type + if protoimpl.UnsafeEnabled { + mi := &file_resources_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BlockResponse_Transaction) GetData() *anypb.Any { - if x != nil { - return x.Data - } - return nil +func (x *GenesisResponse_AppState_Account_MultisigData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BlockResponse_Transaction) GetPayload() []byte { - if x != nil { - return x.Payload +func (*GenesisResponse_AppState_Account_MultisigData) ProtoMessage() {} + +func (x *GenesisResponse_AppState_Account_MultisigData) ProtoReflect() protoreflect.Message { + mi := &file_resources_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BlockResponse_Transaction) GetServiceData() []byte { - if x != nil { - return x.ServiceData - } - return nil +// Deprecated: Use GenesisResponse_AppState_Account_MultisigData.ProtoReflect.Descriptor instead. +func (*GenesisResponse_AppState_Account_MultisigData) Descriptor() ([]byte, []int) { + return file_resources_proto_rawDescGZIP(), []int{17, 1, 5, 1} } -func (x *BlockResponse_Transaction) GetGas() uint64 { +func (x *GenesisResponse_AppState_Account_MultisigData) GetThreshold() uint64 { if x != nil { - return x.Gas + return x.Threshold } return 0 } -func (x *BlockResponse_Transaction) GetGasCoin() *Coin { +func (x *GenesisResponse_AppState_Account_MultisigData) GetWeights() []uint64 { if x != nil { - return x.GasCoin + return x.Weights } return nil } -func (x *BlockResponse_Transaction) GetTags() map[string]string { +func (x *GenesisResponse_AppState_Account_MultisigData) GetAddresses() []string { if x != nil { - return x.Tags + return x.Addresses } return nil } -func (x *BlockResponse_Transaction) GetCode() uint64 { - if x != nil { - return x.Code - } - return 0 -} - -func (x *BlockResponse_Transaction) GetLog() string { - if x != nil { - return x.Log - } - return "" -} - type BlockResponse_Validator struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6818,7 +9889,7 @@ type BlockResponse_Validator struct { func (x *BlockResponse_Validator) Reset() { *x = BlockResponse_Validator{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[95] + mi := &file_resources_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6831,7 +9902,7 @@ func (x *BlockResponse_Validator) String() string { func (*BlockResponse_Validator) ProtoMessage() {} func (x *BlockResponse_Validator) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[95] + mi := &file_resources_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6844,7 +9915,7 @@ func (x *BlockResponse_Validator) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockResponse_Validator.ProtoReflect.Descriptor instead. func (*BlockResponse_Validator) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{7, 1} + return file_resources_proto_rawDescGZIP(), []int{20, 0} } func (x *BlockResponse_Validator) GetPublicKey() string { @@ -6872,7 +9943,7 @@ type BlockResponse_Evidence struct { func (x *BlockResponse_Evidence) Reset() { *x = BlockResponse_Evidence{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[96] + mi := &file_resources_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6885,7 +9956,7 @@ func (x *BlockResponse_Evidence) String() string { func (*BlockResponse_Evidence) ProtoMessage() {} func (x *BlockResponse_Evidence) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[96] + mi := &file_resources_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6898,7 +9969,7 @@ func (x *BlockResponse_Evidence) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockResponse_Evidence.ProtoReflect.Descriptor instead. func (*BlockResponse_Evidence) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{7, 2} + return file_resources_proto_rawDescGZIP(), []int{20, 1} } func (x *BlockResponse_Evidence) GetEvidence() []*structpb.Struct { @@ -6925,7 +9996,7 @@ type AddressesResponse_Result struct { func (x *AddressesResponse_Result) Reset() { *x = AddressesResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[98] + mi := &file_resources_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6938,7 +10009,7 @@ func (x *AddressesResponse_Result) String() string { func (*AddressesResponse_Result) ProtoMessage() {} func (x *AddressesResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[98] + mi := &file_resources_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6951,7 +10022,7 @@ func (x *AddressesResponse_Result) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressesResponse_Result.ProtoReflect.Descriptor instead. func (*AddressesResponse_Result) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{15, 0} + return file_resources_proto_rawDescGZIP(), []int{28, 0} } func (x *AddressesResponse_Result) GetBalance() []*AddressBalance { @@ -7003,7 +10074,7 @@ type CandidateResponse_Stake struct { func (x *CandidateResponse_Stake) Reset() { *x = CandidateResponse_Stake{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[100] + mi := &file_resources_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7016,7 +10087,7 @@ func (x *CandidateResponse_Stake) String() string { func (*CandidateResponse_Stake) ProtoMessage() {} func (x *CandidateResponse_Stake) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[100] + mi := &file_resources_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7029,7 +10100,7 @@ func (x *CandidateResponse_Stake) ProtoReflect() protoreflect.Message { // Deprecated: Use CandidateResponse_Stake.ProtoReflect.Descriptor instead. func (*CandidateResponse_Stake) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{17, 0} + return file_resources_proto_rawDescGZIP(), []int{30, 0} } func (x *CandidateResponse_Stake) GetOwner() string { @@ -7072,7 +10143,7 @@ type ValidatorsResponse_Result struct { func (x *ValidatorsResponse_Result) Reset() { *x = ValidatorsResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[102] + mi := &file_resources_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7085,7 +10156,7 @@ func (x *ValidatorsResponse_Result) String() string { func (*ValidatorsResponse_Result) ProtoMessage() {} func (x *ValidatorsResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[102] + mi := &file_resources_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7098,7 +10169,7 @@ func (x *ValidatorsResponse_Result) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorsResponse_Result.ProtoReflect.Descriptor instead. func (*ValidatorsResponse_Result) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{44, 0} + return file_resources_proto_rawDescGZIP(), []int{57, 0} } func (x *ValidatorsResponse_Result) GetPublicKey() string { @@ -7127,7 +10198,7 @@ type SubscribeResponse_Event struct { func (x *SubscribeResponse_Event) Reset() { *x = SubscribeResponse_Event{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[103] + mi := &file_resources_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7140,7 +10211,7 @@ func (x *SubscribeResponse_Event) String() string { func (*SubscribeResponse_Event) ProtoMessage() {} func (x *SubscribeResponse_Event) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[103] + mi := &file_resources_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7153,7 +10224,7 @@ func (x *SubscribeResponse_Event) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeResponse_Event.ProtoReflect.Descriptor instead. func (*SubscribeResponse_Event) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{46, 0} + return file_resources_proto_rawDescGZIP(), []int{59, 0} } func (x *SubscribeResponse_Event) GetKey() string { @@ -7185,7 +10256,7 @@ type FrozenResponse_Frozen struct { func (x *FrozenResponse_Frozen) Reset() { *x = FrozenResponse_Frozen{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[104] + mi := &file_resources_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7198,7 +10269,7 @@ func (x *FrozenResponse_Frozen) String() string { func (*FrozenResponse_Frozen) ProtoMessage() {} func (x *FrozenResponse_Frozen) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[104] + mi := &file_resources_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7211,7 +10282,7 @@ func (x *FrozenResponse_Frozen) ProtoReflect() protoreflect.Message { // Deprecated: Use FrozenResponse_Frozen.ProtoReflect.Descriptor instead. func (*FrozenResponse_Frozen) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{50, 0} + return file_resources_proto_rawDescGZIP(), []int{63, 0} } func (x *FrozenResponse_Frozen) GetHeight() uint64 { @@ -7262,7 +10333,7 @@ type WaitListResponse_Wait struct { func (x *WaitListResponse_Wait) Reset() { *x = WaitListResponse_Wait{} if protoimpl.UnsafeEnabled { - mi := &file_resources_proto_msgTypes[105] + mi := &file_resources_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7275,7 +10346,7 @@ func (x *WaitListResponse_Wait) String() string { func (*WaitListResponse_Wait) ProtoMessage() {} func (x *WaitListResponse_Wait) ProtoReflect() protoreflect.Message { - mi := &file_resources_proto_msgTypes[105] + mi := &file_resources_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7288,7 +10359,7 @@ func (x *WaitListResponse_Wait) ProtoReflect() protoreflect.Message { // Deprecated: Use WaitListResponse_Wait.ProtoReflect.Descriptor instead. func (*WaitListResponse_Wait) Descriptor() ([]byte, []int) { - return file_resources_proto_rawDescGZIP(), []int{52, 0} + return file_resources_proto_rawDescGZIP(), []int{65, 0} } func (x *WaitListResponse_Wait) GetPublicKey() string { @@ -7330,211 +10401,414 @@ var file_resources_proto_rawDesc = []byte{ 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3a, 0x21, 0x92, 0x41, 0x1e, 0x32, 0x1c, 0x7b, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x22, 0x2c, 0x20, 0x22, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x3a, 0x20, 0x22, - 0x42, 0x49, 0x50, 0x22, 0x7d, 0x22, 0xb2, 0x03, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, - 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4f, 0x74, 0x68, 0x65, - 0x72, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x70, - 0x32, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x70, 0x32, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x61, 0x70, 0x70, 0x1a, 0x43, 0x0a, 0x05, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x70, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x94, 0x0a, 0x0a, 0x0f, 0x4e, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x70, - 0x65, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x1a, - 0xef, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x11, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, - 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, - 0x5a, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x1a, 0xc6, 0x06, 0x0a, 0x10, 0x43, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0b, 0x53, 0x65, 0x6e, - 0x64, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x42, 0x49, 0x50, 0x22, 0x7d, 0x22, 0xd0, 0x01, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x15, 0x92, 0x41, + 0x12, 0xd2, 0x01, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x9a, + 0x02, 0x01, 0x03, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x30, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x13, 0x92, 0x41, 0x10, 0xd2, 0x01, 0x09, 0x74, 0x6f, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x29, 0x0a, + 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x78, 0x73, 0x22, 0x3f, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x69, 0x0a, 0x16, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, + 0x9a, 0x02, 0x01, 0x03, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0xb5, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x1a, 0x5e, 0x0a, 0x04, + 0x56, 0x6f, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x65, 0x0a, 0x12, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, + 0x02, 0x01, 0x03, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x76, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, + 0x74, 0x65, 0x73, 0x1a, 0x41, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0xad, 0x01, 0x0a, 0x16, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x35, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, + 0x39, 0x0a, 0x16, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, + 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x90, 0x0d, 0x0a, 0x17, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x79, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x79, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x6c, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x12, + 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x63, + 0x6f, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x41, 0x6c, + 0x6c, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x75, 0x79, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x62, 0x75, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, + 0x75, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x35, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, + 0x61, 0x73, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x6c, 0x50, + 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x6c, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, + 0x2b, 0x0a, 0x12, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x6c, + 0x6c, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x13, + 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x6c, 0x41, + 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x33, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x72, 0x33, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x35, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, + 0x72, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x36, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x37, 0x5f, 0x31, 0x30, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x37, 0x31, 0x30, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x69, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x25, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x5f, 0x63, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x63, 0x79, + 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x5f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x65, + 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x5f, 0x63, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, + 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x12, 0x27, 0x0a, + 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, + 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, + 0x64, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, + 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x65, 0x64, 0x69, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x23, 0x0a, 0x0d, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x64, 0x69, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x73, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, + 0x28, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x64, + 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x61, 0x64, 0x64, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x29, + 0x0a, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, + 0x74, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x65, 0x64, + 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x72, 0x6e, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x6f, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, + 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x70, 0x0a, + 0x0f, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x12, + 0x1d, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, + 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x12, 0x1f, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, + 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, + 0x64, 0x0a, 0x10, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x30, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x30, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x71, 0x75, + 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, + 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, + 0x12, 0x1d, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, + 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xb2, 0x03, 0x0a, + 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, 0x10, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x1a, + 0x4b, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x32, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x70, 0x32, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x70, 0x70, 0x1a, 0x43, 0x0a, 0x05, + 0x4f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x70, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x94, 0x0a, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x65, + 0x72, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x1a, 0xef, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x65, 0x72, 0x12, + 0x55, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, + 0x02, 0x01, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x75, + 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x5a, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x1a, + 0xc6, 0x06, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x57, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, + 0x65, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x57, 0x0a, 0x0b, 0x52, 0x65, 0x63, + 0x76, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x12, 0x57, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x0b, - 0x52, 0x65, 0x63, 0x76, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x51, 0x0a, 0x08, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0xdb, - 0x02, 0x0a, 0x07, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x61, 0x76, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, - 0x65, 0x61, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x70, 0x65, 0x61, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, - 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x1a, 0xb2, 0x01, 0x0a, - 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x65, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, - 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x53, 0x65, 0x6e, - 0x74, 0x22, 0x9c, 0x03, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, - 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6b, 0x65, 0x65, 0x70, - 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, - 0x22, 0xc5, 0x18, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x49, 0x64, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x1a, 0xea, 0x03, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, - 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4c, 0x0a, 0x08, 0x65, 0x76, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x12, 0x51, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, + 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x08, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0xdb, 0x02, 0x0a, 0x07, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x63, 0x75, 0x72, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x63, 0x75, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x76, 0x67, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x65, 0x61, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x1a, 0xb2, 0x01, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x2e, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x63, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x65, + 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, + 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x6c, 0x79, 0x53, 0x65, 0x6e, 0x74, 0x22, 0xdd, 0x03, 0x0a, 0x0e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x70, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x5f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x22, 0x9d, 0x2a, 0x0a, 0x0f, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x65, - 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x69, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, + 0xea, 0x03, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4c, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x5f, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, - 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x69, 0x6f, 0x74, 0x61, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x49, 0x6f, 0x74, 0x61, 0x4d, 0x73, 0x1a, 0x61, 0x0a, 0x08, 0x45, 0x76, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, - 0x78, 0x41, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2f, 0x0a, 0x09, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x75, 0x62, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0xd8, 0x12, - 0x0a, 0x08, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, - 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x4b, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, + 0x61, 0x6d, 0x73, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x65, 0x76, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x5f, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, + 0x6f, 0x74, 0x61, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x49, 0x6f, 0x74, 0x61, 0x4d, 0x73, 0x1a, 0x61, 0x0a, 0x08, 0x45, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, + 0x41, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2f, 0x0a, 0x09, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x89, 0x24, 0x0a, + 0x08, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x4b, 0x0a, + 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0a, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, - 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x4a, - 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0a, - 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x63, 0x6f, - 0x69, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, + 0x69, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x66, 0x75, + 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, - 0x6e, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x7a, - 0x65, 0x6e, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x77, 0x61, 0x69, 0x74, 0x6c, + 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x72, 0x6f, 0x7a, + 0x65, 0x6e, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x46, 0x75, + 0x6e, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x77, 0x61, 0x69, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x57, 0x61, 0x69, 0x74, @@ -7548,381 +10822,492 @@ var file_resources_proto_rawDesc = []byte{ 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x68, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, - 0x1a, 0x99, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, - 0x69, 0x70, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x5f, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, - 0x63, 0x75, 0x6d, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x62, 0x73, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x1a, 0x8b, 0x04, 0x0a, - 0x09, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, - 0x69, 0x70, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, - 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, - 0x12, 0x4a, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, - 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x1a, 0x64, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x4b, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x10, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, + 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, + 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x64, 0x5f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, + 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, + 0x67, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x47, 0x61, + 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x61, 0x73, 0x68, + 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x1a, 0x99, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, + 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x69, 0x70, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x63, 0x63, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x1a, 0x8b, 0x04, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, + 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x69, 0x70, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x64, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x1a, 0xba, 0x02, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x63, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x72, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0xce, 0x01, + 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, + 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, + 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6d, + 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x82, 0x02, 0x0a, 0x04, 0x43, - 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, - 0xce, 0x01, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x64, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x1a, 0x6d, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, - 0xfc, 0x02, 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, - 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x73, 0x69, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, - 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x1a, 0x33, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, - 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x64, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x73, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x48, - 0x0a, 0x09, 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x64, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x39, 0x0a, 0x13, 0x4d, 0x69, 0x6e, 0x47, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xfc, 0x02, + 0x0a, 0x07, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x5a, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, + 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x44, 0x61, 0x74, + 0x61, 0x1a, 0x33, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x64, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, + 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x48, 0x0a, 0x09, + 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x1a, 0x7a, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, + 0x6f, 0x69, 0x6e, 0x30, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x30, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x69, 0x64, 0x1a, 0xf5, 0x0c, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x62, 0x75, 0x79, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x62, 0x75, 0x79, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x65, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x6c, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0f, + 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x42, 0x61, + 0x6e, 0x63, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x75, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x75, 0x79, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x62, 0x75, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x24, + 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, + 0x42, 0x61, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x65, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x12, + 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x6c, 0x6c, 0x41, 0x6c, + 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6c, + 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x50, + 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x33, 0x12, + 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x35, 0x12, 0x25, 0x0a, + 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x36, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x36, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x37, 0x5f, 0x31, 0x30, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x37, 0x31, 0x30, + 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, + 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x63, + 0x6c, 0x61, 0x72, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x63, 0x79, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x62, + 0x6f, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x73, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x2a, + 0x0a, 0x11, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6f, 0x66, 0x66, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x74, 0x43, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x73, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x34, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x44, 0x65, + 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x64, 0x69, + 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x65, + 0x74, 0x5f, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x5f, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x64, 0x69, + 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, + 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x64, 0x69, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, + 0x67, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, + 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x5f, 0x6c, 0x69, + 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x64, 0x64, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x65, 0x64, 0x69, 0x74, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x72, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x6f, 0x74, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x74, + 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x76, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x8b, 0x01, 0x0a, 0x0e, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x13, 0x4d, 0x69, 0x6e, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x47, 0x61, 0x73, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x6d, 0x0a, 0x05, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0x01, - 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x76, - 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x10, 0x06, 0x22, 0x88, 0x08, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, - 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, - 0x72, 0x12, 0x3f, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x76, 0x69, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x1a, 0xd5, 0x03, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x61, - 0x77, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x77, 0x54, - 0x78, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, - 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x27, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x69, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x67, 0x61, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x3f, - 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, - 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x12, 0x29, 0x0a, 0x0a, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x52, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x78, 0x73, 0x22, 0xaa, 0x04, 0x0a, + 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b, + 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x0c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, + 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, + 0x3f, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x69, + 0x73, 0x73, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x1a, 0x3f, 0x0a, 0x08, 0x45, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x12, 0x4d, 0x61, 0x78, + 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x22, 0x39, 0x0a, 0x13, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x67, + 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x75, 0x0a, 0x0e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x64, 0x22, 0x65, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x42, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xfa, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3d, + 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0f, 0x92, + 0x41, 0x0c, 0xd2, 0x01, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, + 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, + 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x64, 0x22, 0xaf, 0x03, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x1a, 0xf1, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, + 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, + 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, + 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x5e, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x1a, 0x3f, 0x0a, 0x08, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x33, - 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x12, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, - 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x39, 0x0a, 0x13, 0x4d, 0x61, - 0x78, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x75, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x0e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, - 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x5f, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x69, 0x70, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0xfa, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x05, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x8c, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0f, 0x92, 0x41, 0x0c, 0xd2, 0x01, 0x09, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x28, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, - 0x6c, 0x73, 0x65, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0xaf, - 0x03, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0xf1, 0x01, 0x0a, - 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x1a, 0x5e, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x86, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, + 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, + 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x0f, 0x6e, + 0x6f, 0x74, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x22, + 0xb3, 0x05, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x75, 0x73, + 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x75, 0x73, + 0x65, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, + 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x21, + 0x0a, 0x0c, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x6e, 0x74, 0x69, + 0x6c, 0x1a, 0x72, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, + 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, + 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x31, 0x0a, 0x0e, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, + 0x32, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3a, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x6f, + 0x6e, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x10, 0x03, 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x22, 0x51, 0x0a, 0x0d, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x68, 0x6f, - 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, - 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x53, - 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x22, 0x80, 0x05, 0x0a, 0x11, 0x43, 0x61, - 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x74, - 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x6f, - 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, - 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x53, 0x6c, 0x6f, 0x74, - 0x73, 0x12, 0x3b, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x39, - 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x08, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x72, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x02, 0x0a, - 0x11, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x31, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x0a, 0x92, 0x41, 0x07, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x68, - 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, - 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, - 0x53, 0x68, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2b, 0x0a, - 0x0f, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6f, 0x66, 0x66, - 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x6f, 0x6e, 0x10, 0x02, 0x22, 0x4f, 0x0a, 0x12, 0x43, 0x61, - 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, - 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x51, 0x0a, 0x0d, 0x43, - 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, - 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0f, 0x92, - 0x41, 0x0c, 0x32, 0x0a, 0x7b, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x30, 0x22, 0x7d, 0x22, 0x4a, - 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x9f, 0x03, 0x0a, 0x10, 0x43, - 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x63, 0x72, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, - 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0f, 0x92, 0x41, 0x0c, 0x32, 0x0a, 0x7b, 0x22, 0x69, 0x64, + 0x22, 0x3a, 0x22, 0x30, 0x22, 0x7d, 0x22, 0x4a, 0x0a, 0x0f, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, + 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x22, 0xd7, 0x03, 0x0a, 0x10, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, + 0x72, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x72, 0x72, 0x12, 0x27, 0x0a, + 0x0f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x99, 0x01, 0x92, 0x41, 0x95, 0x01, 0x32, 0x92, 0x01, 0x7b, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x30, 0x22, 0x2c, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22, 0x22, 0x2c, 0x22, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x22, 0x3a, 0x22, 0x42, 0x49, 0x50, 0x22, 0x2c, 0x22, 0x76, 0x6f, @@ -7947,7 +11332,7 @@ var file_resources_proto_rawDesc = []byte{ 0x64, 0x36, 0x36, 0x35, 0x61, 0x64, 0x66, 0x63, 0x62, 0x22, 0x7d, 0x22, 0x28, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x74, 0x78, 0x22, 0xe2, 0x03, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x09, 0x52, 0x02, 0x74, 0x78, 0x22, 0xa0, 0x04, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x61, 0x77, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -7962,121 +11347,161 @@ var file_resources_proto_rawDesc = []byte{ 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, - 0x07, 0x67, 0x61, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x12, 0x39, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, - 0x67, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x12, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x68, 0x61, 0x73, 0x68, 0x22, 0x57, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x7c, 0x0a, - 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0b, 0x92, 0x41, 0x08, 0xd2, 0x01, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x01, 0x31, 0x9a, 0x02, 0x01, - 0x03, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0x92, 0x41, 0x04, 0x3a, 0x02, - 0x33, 0x30, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x16, - 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, - 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, - 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x49, - 0x64, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, - 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, - 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x30, 0x0a, 0x0f, 0x63, 0x6f, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x6f, - 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x34, - 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x12, 0x92, 0x41, 0x0f, 0xd2, 0x01, 0x0c, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, - 0x6f, 0x42, 0x75, 0x79, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x75, 0x79, 0x42, 0x06, 0x0a, 0x04, - 0x73, 0x65, 0x6c, 0x6c, 0x22, 0x54, 0x0a, 0x17, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x5f, 0x70, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x77, 0x69, 0x6c, 0x6c, 0x50, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x02, 0x0a, 0x17, 0x45, - 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, - 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, - 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x49, - 0x64, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, - 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, - 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x30, 0x0a, 0x0f, 0x63, 0x6f, 0x69, 0x6e, - 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x6f, - 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x37, - 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x13, 0x92, 0x41, 0x10, 0xd2, 0x01, 0x0d, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, - 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x75, 0x79, 0x42, - 0x06, 0x0a, 0x04, 0x73, 0x65, 0x6c, 0x6c, 0x22, 0x55, 0x0a, 0x18, 0x45, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x5f, 0x67, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x6c, 0x6c, 0x47, 0x65, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd6, - 0x02, 0x0a, 0x1a, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, - 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, - 0x0e, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x00, - 0x52, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, - 0x30, 0x0a, 0x0f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, - 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, - 0x03, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x53, 0x65, 0x6c, - 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, - 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x37, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, - 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x13, 0x92, 0x41, - 0x10, 0xd2, 0x01, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, - 0x6c, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x27, - 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x01, 0x31, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x08, 0x67, - 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, - 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x75, 0x79, 0x42, - 0x06, 0x0a, 0x04, 0x73, 0x65, 0x6c, 0x6c, 0x22, 0x38, 0x0a, 0x1b, 0x45, 0x73, 0x74, 0x69, 0x6d, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x5f, 0x67, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x6c, 0x6c, 0x47, 0x65, - 0x74, 0x22, 0x3e, 0x0a, 0x1c, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x58, 0x0a, 0x1b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, + 0x07, 0x67, 0x61, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x68, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, + 0x48, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, + 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x1a, + 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, + 0x73, 0x68, 0x22, 0x57, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x7c, 0x0a, 0x13, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0b, 0x92, 0x41, 0x08, 0xd2, 0x01, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x0a, 0x92, 0x41, 0x07, 0x3a, 0x01, 0x31, 0x9a, 0x02, 0x01, 0x03, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0x92, 0x41, 0x04, 0x3a, 0x02, 0x33, 0x30, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x16, 0x45, 0x73, + 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, + 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, + 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x54, + 0x6f, 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, + 0x62, 0x75, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x69, + 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x30, 0x0a, 0x0f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, + 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x69, 0x6e, + 0x49, 0x64, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, + 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x34, 0x0a, 0x0c, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x12, 0x92, 0x41, 0x0f, 0xd2, 0x01, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, + 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x42, + 0x75, 0x79, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x37, 0x0a, 0x12, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x02, 0x52, 0x10, 0x63, 0x6f, 0x69, 0x6e, + 0x49, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x0f, + 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x08, 0x73, 0x77, + 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x05, 0x0a, 0x03, + 0x62, 0x75, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x65, 0x6c, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x17, 0x45, 0x73, + 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x5f, 0x70, 0x61, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x6c, 0x6c, 0x50, 0x61, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x77, 0x61, + 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x22, + 0xe1, 0x03, 0x0a, 0x17, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, + 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x63, + 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x00, 0x52, 0x0b, + 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x30, 0x0a, + 0x0f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, + 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, + 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, + 0x65, 0x6c, 0x6c, 0x12, 0x37, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x13, 0x92, 0x41, 0x10, 0xd2, + 0x01, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x52, + 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, + 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x37, 0x0a, + 0x12, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, + 0x01, 0x03, 0x48, 0x02, 0x52, 0x10, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x0f, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x77, + 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x75, 0x79, 0x42, 0x06, 0x0a, + 0x04, 0x73, 0x65, 0x6c, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x18, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x5f, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x6c, 0x6c, 0x47, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x09, 0x73, + 0x77, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, + 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, + 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x22, 0x9b, 0x03, 0x0a, 0x1a, 0x45, + 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, + 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x0e, 0x63, 0x6f, 0x69, + 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, + 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x69, + 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x30, 0x0a, 0x0f, 0x63, + 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x48, 0x01, 0x52, + 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x6c, + 0x6c, 0x12, 0x37, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, + 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x13, 0x92, 0x41, 0x10, 0xd2, 0x01, 0x0d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x52, 0x0b, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x27, 0x0a, 0x09, 0x67, 0x61, + 0x73, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0a, 0x92, + 0x41, 0x07, 0x3a, 0x01, 0x31, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x08, 0x67, 0x61, 0x73, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, + 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, + 0x2e, 0x53, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x46, + 0x72, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x75, 0x79, + 0x42, 0x06, 0x0a, 0x04, 0x73, 0x65, 0x6c, 0x6c, 0x22, 0x67, 0x0a, 0x1b, 0x45, 0x73, 0x74, 0x69, + 0x6d, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x5f, + 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x6c, 0x6c, 0x47, + 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, + 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x08, 0x73, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, + 0x6d, 0x22, 0x58, 0x0a, 0x1b, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0x92, 0x41, 0x05, 0xd2, 0x01, 0x02, 0x74, 0x78, 0x52, 0x02, 0x74, 0x78, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, - 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x48, 0x0a, 0x0d, 0x45, + 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x0a, 0x1c, 0x45, + 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x54, 0x78, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, @@ -8151,191 +11576,410 @@ var file_resources_proto_rawDesc = []byte{ 0x67, 0x68, 0x74, 0x22, 0x30, 0x0a, 0x0d, 0x48, 0x61, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x69, 0x0a, 0x0d, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x69, 0x6e, 0x49, 0x64, - 0x22, 0xe1, 0x01, 0x0a, 0x0e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x72, 0x6f, - 0x7a, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x72, 0x6f, 0x7a, - 0x65, 0x6e, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x1a, 0x97, 0x01, 0x0a, 0x06, 0x46, - 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x64, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x04, - 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6b, 0x0a, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, - 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, - 0x61, 0x69, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x5d, 0x0a, 0x04, 0x57, 0x61, 0x69, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, - 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, - 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x52, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc1, 0x01, 0x0a, - 0x0c, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, - 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x0a, - 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, - 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, - 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x75, 0x79, - 0x22, 0xa0, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x69, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, - 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, - 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, - 0x62, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, - 0x75, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, - 0x42, 0x75, 0x79, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x69, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x62, - 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, - 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, - 0x42, 0x75, 0x79, 0x12, 0x2e, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, - 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, - 0x65, 0x6c, 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x22, 0xe1, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x44, - 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x63, 0x79, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17, 0x0a, - 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x22, 0x5f, - 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, - 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x5d, 0x0a, 0x0a, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, - 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x02, + 0x63, 0x4b, 0x65, 0x79, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x69, 0x6e, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x22, 0xe1, 0x01, 0x0a, 0x0e, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x46, + 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x72, + 0x6f, 0x7a, 0x65, 0x6e, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x1a, 0x97, 0x01, 0x0a, + 0x06, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x20, + 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6b, 0x0a, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x07, 0x92, 0x41, 0x04, 0x9a, 0x02, 0x01, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x57, 0x61, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x57, 0x61, 0x69, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x5d, 0x0a, 0x04, 0x57, + 0x61, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, + 0x65, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, + 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x52, 0x0a, 0x08, 0x53, 0x65, + 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x44, - 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x61, 0x77, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x14, - 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x2d, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, - 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x22, 0x2e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, - 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x22, 0x6a, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x73, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, - 0x35, 0x0a, 0x0d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x43, - 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, + 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc1, + 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2e, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, + 0x22, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, + 0x65, 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x62, + 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x42, 0x75, + 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x42, + 0x75, 0x79, 0x22, 0xa0, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x43, 0x6f, + 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, + 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, + 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, + 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, + 0x6f, 0x42, 0x75, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x54, 0x6f, 0x42, 0x75, 0x79, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x69, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x0b, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, + 0x5f, 0x62, 0x75, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x69, 0x6e, 0x54, 0x6f, + 0x42, 0x75, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x62, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x2e, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, + 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x69, 0x6e, 0x54, + 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x22, 0xe1, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, + 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0xa1, 0x01, 0x0a, + 0x14, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x63, + 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x22, 0x5f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x5d, 0x0a, 0x0a, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x44, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x61, 0x77, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x2d, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x61, 0x6e, + 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x43, 0x0a, 0x10, 0x53, 0x65, - 0x74, 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, - 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0xe3, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, - 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x48, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x43, 0x6f, 0x69, - 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, - 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, - 0x68, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x22, 0x55, 0x0a, 0x1a, 0x45, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0x2e, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, + 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0x6a, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x22, 0x35, 0x0a, 0x0d, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x11, 0x45, 0x64, 0x69, + 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x70, - 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, - 0x77, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, + 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x43, 0x0a, 0x10, + 0x53, 0x65, 0x74, 0x48, 0x61, 0x6c, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0xe3, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, + 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x48, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x43, + 0x6f, 0x69, 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x22, 0x68, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x55, 0x0a, 0x1a, 0x45, + 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x50, 0x75, 0x62, 0x4b, + 0x65, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x77, 0x61, + 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x63, 0x6f, 0x69, + 0x6e, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x12, 0x22, 0x0a, + 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, + 0x31, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x30, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x31, 0x22, 0x9d, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x4c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x63, 0x6f, + 0x69, 0x6e, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x12, 0x22, + 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, + 0x6e, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x30, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x30, 0x12, 0x27, 0x0a, 0x0f, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x31, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x31, 0x22, 0xcd, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, + 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, + 0x30, 0x12, 0x22, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, + 0x63, 0x6f, 0x69, 0x6e, 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x30, 0x12, 0x27, 0x0a, 0x0f, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x31, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x31, 0x22, 0x8b, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x6c, 0x53, 0x77, + 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x63, 0x6f, + 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x22, + 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, + 0x6c, 0x6c, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, + 0x42, 0x75, 0x79, 0x22, 0x6a, 0x0a, 0x13, 0x53, 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x53, 0x77, + 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x63, 0x6f, + 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x2f, + 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, + 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x22, + 0x8a, 0x01, 0x0a, 0x0f, 0x42, 0x75, 0x79, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x75, 0x79, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, + 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x6c, 0x22, 0x52, 0x0a, 0x17, + 0x45, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x47, 0x0a, 0x0d, 0x4d, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, + 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x0d, 0x42, 0x75, 0x72, + 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x78, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x75, 0x72, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x22, 0xbc, 0x0d, 0x0a, 0x12, 0x56, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x04, 0x63, 0x6f, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x6e, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x79, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x79, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x6c, 0x42, 0x61, 0x6e, 0x63, 0x6f, + 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x61, + 0x6e, 0x63, 0x6f, 0x72, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x6c, + 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6e, 0x63, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x75, 0x79, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x62, 0x75, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, + 0x0e, 0x62, 0x75, 0x79, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, + 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, + 0x6c, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, + 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x65, 0x6c, + 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x36, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, + 0x61, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, + 0x65, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x12, 0x2d, + 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x6c, + 0x6c, 0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x6f, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, + 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x33, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x33, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x35, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, + 0x72, 0x35, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x36, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x36, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x37, 0x5f, 0x31, 0x30, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x37, 0x31, 0x30, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, + 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, + 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, + 0x64, 0x65, 0x65, 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x74, + 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x18, 0x2c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x73, 0x65, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, + 0x69, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6c, + 0x74, 0x61, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, + 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, + 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x24, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x48, 0x61, 0x6c, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, + 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x65, 0x64, 0x69, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, + 0x69, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x64, 0x69, 0x74, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x65, 0x64, 0x69, 0x74, 0x43, + 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x77, 0x61, 0x70, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x61, + 0x64, 0x64, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x31, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, + 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x19, 0x65, + 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, + 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x74, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x69, 0x6e, + 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x72, 0x6e, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x72, 0x6e, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x76, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, + 0x0a, 0x0b, 0x76, 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, + 0x5b, 0x0a, 0x0e, 0x56, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x72, 0x0a, 0x0a, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x10, 0x06, + 0x2a, 0x2d, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x0b, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x62, 0x61, 0x6e, + 0x63, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x10, 0x02, 0x42, + 0x0a, 0x5a, 0x08, 0x2e, 0x3b, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -8350,205 +11994,261 @@ func file_resources_proto_rawDescGZIP() []byte { return file_resources_proto_rawDescData } -var file_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 106) +var file_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 135) var file_resources_proto_goTypes = []interface{}{ - (BlockRequest_Field)(0), // 0: api_pb.BlockRequest.Field - (CandidatesRequest_CandidateStatus)(0), // 1: api_pb.CandidatesRequest.CandidateStatus - (*Coin)(nil), // 2: api_pb.Coin - (*NodeInfo)(nil), // 3: api_pb.NodeInfo - (*NetInfoResponse)(nil), // 4: api_pb.NetInfoResponse - (*StatusResponse)(nil), // 5: api_pb.StatusResponse - (*GenesisResponse)(nil), // 6: api_pb.GenesisResponse - (*MinGasPriceResponse)(nil), // 7: api_pb.MinGasPriceResponse - (*BlockRequest)(nil), // 8: api_pb.BlockRequest - (*BlockResponse)(nil), // 9: api_pb.BlockResponse - (*MaxGasPriceRequest)(nil), // 10: api_pb.MaxGasPriceRequest - (*MaxGasPriceResponse)(nil), // 11: api_pb.MaxGasPriceResponse - (*AddressRequest)(nil), // 12: api_pb.AddressRequest - (*AddressBalance)(nil), // 13: api_pb.AddressBalance - (*AddressDelegatedBalance)(nil), // 14: api_pb.AddressDelegatedBalance - (*AddressResponse)(nil), // 15: api_pb.AddressResponse - (*AddressesRequest)(nil), // 16: api_pb.AddressesRequest - (*AddressesResponse)(nil), // 17: api_pb.AddressesResponse - (*CandidateRequest)(nil), // 18: api_pb.CandidateRequest - (*CandidateResponse)(nil), // 19: api_pb.CandidateResponse - (*CandidatesRequest)(nil), // 20: api_pb.CandidatesRequest - (*CandidatesResponse)(nil), // 21: api_pb.CandidatesResponse - (*CoinIdRequest)(nil), // 22: api_pb.CoinIdRequest - (*CoinInfoRequest)(nil), // 23: api_pb.CoinInfoRequest - (*CoinInfoResponse)(nil), // 24: api_pb.CoinInfoResponse - (*SendTransactionResponse)(nil), // 25: api_pb.SendTransactionResponse - (*SendTransactionRequest)(nil), // 26: api_pb.SendTransactionRequest - (*TransactionResponse)(nil), // 27: api_pb.TransactionResponse - (*TransactionRequest)(nil), // 28: api_pb.TransactionRequest - (*TransactionsResponse)(nil), // 29: api_pb.TransactionsResponse - (*TransactionsRequest)(nil), // 30: api_pb.TransactionsRequest - (*EstimateCoinBuyRequest)(nil), // 31: api_pb.EstimateCoinBuyRequest - (*EstimateCoinBuyResponse)(nil), // 32: api_pb.EstimateCoinBuyResponse - (*EstimateCoinSellRequest)(nil), // 33: api_pb.EstimateCoinSellRequest - (*EstimateCoinSellResponse)(nil), // 34: api_pb.EstimateCoinSellResponse - (*EstimateCoinSellAllRequest)(nil), // 35: api_pb.EstimateCoinSellAllRequest - (*EstimateCoinSellAllResponse)(nil), // 36: api_pb.EstimateCoinSellAllResponse - (*EstimateTxCommissionResponse)(nil), // 37: api_pb.EstimateTxCommissionResponse - (*EstimateTxCommissionRequest)(nil), // 38: api_pb.EstimateTxCommissionRequest - (*EventsRequest)(nil), // 39: api_pb.EventsRequest - (*EventsResponse)(nil), // 40: api_pb.EventsResponse - (*MissedBlocksRequest)(nil), // 41: api_pb.MissedBlocksRequest - (*MissedBlocksResponse)(nil), // 42: api_pb.MissedBlocksResponse - (*UnconfirmedTxsResponse)(nil), // 43: api_pb.UnconfirmedTxsResponse - (*UnconfirmedTxsRequest)(nil), // 44: api_pb.UnconfirmedTxsRequest - (*ValidatorsRequest)(nil), // 45: api_pb.ValidatorsRequest - (*ValidatorsResponse)(nil), // 46: api_pb.ValidatorsResponse - (*SubscribeRequest)(nil), // 47: api_pb.SubscribeRequest - (*SubscribeResponse)(nil), // 48: api_pb.SubscribeResponse - (*HaltsRequest)(nil), // 49: api_pb.HaltsRequest - (*HaltsResponse)(nil), // 50: api_pb.HaltsResponse - (*FrozenRequest)(nil), // 51: api_pb.FrozenRequest - (*FrozenResponse)(nil), // 52: api_pb.FrozenResponse - (*WaitListRequest)(nil), // 53: api_pb.WaitListRequest - (*WaitListResponse)(nil), // 54: api_pb.WaitListResponse - (*SendData)(nil), // 55: api_pb.SendData - (*SellCoinData)(nil), // 56: api_pb.SellCoinData - (*SellAllCoinData)(nil), // 57: api_pb.SellAllCoinData - (*BuyCoinData)(nil), // 58: api_pb.BuyCoinData - (*CreateCoinData)(nil), // 59: api_pb.CreateCoinData - (*DeclareCandidacyData)(nil), // 60: api_pb.DeclareCandidacyData - (*DelegateData)(nil), // 61: api_pb.DelegateData - (*UnbondData)(nil), // 62: api_pb.UnbondData - (*RedeemCheckData)(nil), // 63: api_pb.RedeemCheckData - (*SetCandidateOnData)(nil), // 64: api_pb.SetCandidateOnData - (*SetCandidateOffData)(nil), // 65: api_pb.SetCandidateOffData - (*CreateMultisigData)(nil), // 66: api_pb.CreateMultisigData - (*MultiSendData)(nil), // 67: api_pb.MultiSendData - (*EditCandidateData)(nil), // 68: api_pb.EditCandidateData - (*SetHaltBlockData)(nil), // 69: api_pb.SetHaltBlockData - (*RecreateCoinData)(nil), // 70: api_pb.RecreateCoinData - (*EditCoinOwnerData)(nil), // 71: api_pb.EditCoinOwnerData - (*EditMultisigData)(nil), // 72: api_pb.EditMultisigData - (*PriceVoteData)(nil), // 73: api_pb.PriceVoteData - (*EditCandidatePublicKeyData)(nil), // 74: api_pb.EditCandidatePublicKeyData - (*NodeInfo_ProtocolVersion)(nil), // 75: api_pb.NodeInfo.ProtocolVersion - (*NodeInfo_Other)(nil), // 76: api_pb.NodeInfo.Other - (*NetInfoResponse_Peer)(nil), // 77: api_pb.NetInfoResponse.Peer - (*NetInfoResponse_Peer_ConnectionStatus)(nil), // 78: api_pb.NetInfoResponse.Peer.ConnectionStatus - (*NetInfoResponse_Peer_ConnectionStatus_Monitor)(nil), // 79: api_pb.NetInfoResponse.Peer.ConnectionStatus.Monitor - (*NetInfoResponse_Peer_ConnectionStatus_Channel)(nil), // 80: api_pb.NetInfoResponse.Peer.ConnectionStatus.Channel - (*GenesisResponse_ConsensusParams)(nil), // 81: api_pb.GenesisResponse.ConsensusParams - (*GenesisResponse_AppState)(nil), // 82: api_pb.GenesisResponse.AppState - (*GenesisResponse_ConsensusParams_Block)(nil), // 83: api_pb.GenesisResponse.ConsensusParams.Block - (*GenesisResponse_ConsensusParams_Evidence)(nil), // 84: api_pb.GenesisResponse.ConsensusParams.Evidence - (*GenesisResponse_ConsensusParams_Validator)(nil), // 85: api_pb.GenesisResponse.ConsensusParams.Validator - (*GenesisResponse_AppState_Validators)(nil), // 86: api_pb.GenesisResponse.AppState.Validators - (*GenesisResponse_AppState_Candidate)(nil), // 87: api_pb.GenesisResponse.AppState.Candidate - (*GenesisResponse_AppState_Coin)(nil), // 88: api_pb.GenesisResponse.AppState.Coin - (*GenesisResponse_AppState_FrozenFund)(nil), // 89: api_pb.GenesisResponse.AppState.FrozenFund - (*GenesisResponse_AppState_Waitlist)(nil), // 90: api_pb.GenesisResponse.AppState.Waitlist - (*GenesisResponse_AppState_Account)(nil), // 91: api_pb.GenesisResponse.AppState.Account - (*GenesisResponse_AppState_HaltBlock)(nil), // 92: api_pb.GenesisResponse.AppState.HaltBlock - (*GenesisResponse_AppState_Candidate_Stake)(nil), // 93: api_pb.GenesisResponse.AppState.Candidate.Stake - (*GenesisResponse_AppState_Account_Balance)(nil), // 94: api_pb.GenesisResponse.AppState.Account.Balance - (*GenesisResponse_AppState_Account_MultisigData)(nil), // 95: api_pb.GenesisResponse.AppState.Account.MultisigData - (*BlockResponse_Transaction)(nil), // 96: api_pb.BlockResponse.Transaction - (*BlockResponse_Validator)(nil), // 97: api_pb.BlockResponse.Validator - (*BlockResponse_Evidence)(nil), // 98: api_pb.BlockResponse.Evidence - nil, // 99: api_pb.BlockResponse.Transaction.TagsEntry - (*AddressesResponse_Result)(nil), // 100: api_pb.AddressesResponse.Result - nil, // 101: api_pb.AddressesResponse.AddressesEntry - (*CandidateResponse_Stake)(nil), // 102: api_pb.CandidateResponse.Stake - nil, // 103: api_pb.TransactionResponse.TagsEntry - (*ValidatorsResponse_Result)(nil), // 104: api_pb.ValidatorsResponse.Result - (*SubscribeResponse_Event)(nil), // 105: api_pb.SubscribeResponse.Event - (*FrozenResponse_Frozen)(nil), // 106: api_pb.FrozenResponse.Frozen - (*WaitListResponse_Wait)(nil), // 107: api_pb.WaitListResponse.Wait - (*wrapperspb.UInt64Value)(nil), // 108: google.protobuf.UInt64Value - (*wrapperspb.StringValue)(nil), // 109: google.protobuf.StringValue - (*anypb.Any)(nil), // 110: google.protobuf.Any - (*structpb.Struct)(nil), // 111: google.protobuf.Struct + (BlockField)(0), // 0: api_pb.BlockField + (SwapFrom)(0), // 1: api_pb.SwapFrom + (CandidatesRequest_CandidateStatus)(0), // 2: api_pb.CandidatesRequest.CandidateStatus + (*Coin)(nil), // 3: api_pb.Coin + (*BlocksRequest)(nil), // 4: api_pb.BlocksRequest + (*BlocksResponse)(nil), // 5: api_pb.BlocksResponse + (*CommissionVotesRequest)(nil), // 6: api_pb.CommissionVotesRequest + (*CommissionVotesResponse)(nil), // 7: api_pb.CommissionVotesResponse + (*UpdateVotesRequest)(nil), // 8: api_pb.UpdateVotesRequest + (*UpdateVotesResponse)(nil), // 9: api_pb.UpdateVotesResponse + (*VersionNetworkRequest)(nil), // 10: api_pb.VersionNetworkRequest + (*VersionNetworkResponse)(nil), // 11: api_pb.VersionNetworkResponse + (*PriceCommissionRequest)(nil), // 12: api_pb.PriceCommissionRequest + (*PriceCommissionResponse)(nil), // 13: api_pb.PriceCommissionResponse + (*SwapPoolRequest)(nil), // 14: api_pb.SwapPoolRequest + (*SwapPoolResponse)(nil), // 15: api_pb.SwapPoolResponse + (*SwapPoolProviderRequest)(nil), // 16: api_pb.SwapPoolProviderRequest + (*NodeInfo)(nil), // 17: api_pb.NodeInfo + (*NetInfoResponse)(nil), // 18: api_pb.NetInfoResponse + (*StatusResponse)(nil), // 19: api_pb.StatusResponse + (*GenesisResponse)(nil), // 20: api_pb.GenesisResponse + (*MinGasPriceResponse)(nil), // 21: api_pb.MinGasPriceResponse + (*BlockRequest)(nil), // 22: api_pb.BlockRequest + (*BlockResponse)(nil), // 23: api_pb.BlockResponse + (*MaxGasPriceRequest)(nil), // 24: api_pb.MaxGasPriceRequest + (*MaxGasPriceResponse)(nil), // 25: api_pb.MaxGasPriceResponse + (*AddressRequest)(nil), // 26: api_pb.AddressRequest + (*AddressBalance)(nil), // 27: api_pb.AddressBalance + (*AddressDelegatedBalance)(nil), // 28: api_pb.AddressDelegatedBalance + (*AddressResponse)(nil), // 29: api_pb.AddressResponse + (*AddressesRequest)(nil), // 30: api_pb.AddressesRequest + (*AddressesResponse)(nil), // 31: api_pb.AddressesResponse + (*CandidateRequest)(nil), // 32: api_pb.CandidateRequest + (*CandidateResponse)(nil), // 33: api_pb.CandidateResponse + (*CandidatesRequest)(nil), // 34: api_pb.CandidatesRequest + (*CandidatesResponse)(nil), // 35: api_pb.CandidatesResponse + (*CoinIdRequest)(nil), // 36: api_pb.CoinIdRequest + (*CoinInfoRequest)(nil), // 37: api_pb.CoinInfoRequest + (*CoinInfoResponse)(nil), // 38: api_pb.CoinInfoResponse + (*SendTransactionResponse)(nil), // 39: api_pb.SendTransactionResponse + (*SendTransactionRequest)(nil), // 40: api_pb.SendTransactionRequest + (*TransactionResponse)(nil), // 41: api_pb.TransactionResponse + (*TransactionRequest)(nil), // 42: api_pb.TransactionRequest + (*TransactionsResponse)(nil), // 43: api_pb.TransactionsResponse + (*TransactionsRequest)(nil), // 44: api_pb.TransactionsRequest + (*EstimateCoinBuyRequest)(nil), // 45: api_pb.EstimateCoinBuyRequest + (*EstimateCoinBuyResponse)(nil), // 46: api_pb.EstimateCoinBuyResponse + (*EstimateCoinSellRequest)(nil), // 47: api_pb.EstimateCoinSellRequest + (*EstimateCoinSellResponse)(nil), // 48: api_pb.EstimateCoinSellResponse + (*EstimateCoinSellAllRequest)(nil), // 49: api_pb.EstimateCoinSellAllRequest + (*EstimateCoinSellAllResponse)(nil), // 50: api_pb.EstimateCoinSellAllResponse + (*EstimateTxCommissionRequest)(nil), // 51: api_pb.EstimateTxCommissionRequest + (*EstimateTxCommissionResponse)(nil), // 52: api_pb.EstimateTxCommissionResponse + (*EventsRequest)(nil), // 53: api_pb.EventsRequest + (*EventsResponse)(nil), // 54: api_pb.EventsResponse + (*MissedBlocksRequest)(nil), // 55: api_pb.MissedBlocksRequest + (*MissedBlocksResponse)(nil), // 56: api_pb.MissedBlocksResponse + (*UnconfirmedTxsResponse)(nil), // 57: api_pb.UnconfirmedTxsResponse + (*UnconfirmedTxsRequest)(nil), // 58: api_pb.UnconfirmedTxsRequest + (*ValidatorsRequest)(nil), // 59: api_pb.ValidatorsRequest + (*ValidatorsResponse)(nil), // 60: api_pb.ValidatorsResponse + (*SubscribeRequest)(nil), // 61: api_pb.SubscribeRequest + (*SubscribeResponse)(nil), // 62: api_pb.SubscribeResponse + (*HaltsRequest)(nil), // 63: api_pb.HaltsRequest + (*HaltsResponse)(nil), // 64: api_pb.HaltsResponse + (*FrozenRequest)(nil), // 65: api_pb.FrozenRequest + (*FrozenResponse)(nil), // 66: api_pb.FrozenResponse + (*WaitListRequest)(nil), // 67: api_pb.WaitListRequest + (*WaitListResponse)(nil), // 68: api_pb.WaitListResponse + (*SendData)(nil), // 69: api_pb.SendData + (*SellCoinData)(nil), // 70: api_pb.SellCoinData + (*SellAllCoinData)(nil), // 71: api_pb.SellAllCoinData + (*BuyCoinData)(nil), // 72: api_pb.BuyCoinData + (*CreateCoinData)(nil), // 73: api_pb.CreateCoinData + (*DeclareCandidacyData)(nil), // 74: api_pb.DeclareCandidacyData + (*DelegateData)(nil), // 75: api_pb.DelegateData + (*UnbondData)(nil), // 76: api_pb.UnbondData + (*RedeemCheckData)(nil), // 77: api_pb.RedeemCheckData + (*SetCandidateOnData)(nil), // 78: api_pb.SetCandidateOnData + (*SetCandidateOffData)(nil), // 79: api_pb.SetCandidateOffData + (*CreateMultisigData)(nil), // 80: api_pb.CreateMultisigData + (*MultiSendData)(nil), // 81: api_pb.MultiSendData + (*EditCandidateData)(nil), // 82: api_pb.EditCandidateData + (*SetHaltBlockData)(nil), // 83: api_pb.SetHaltBlockData + (*RecreateCoinData)(nil), // 84: api_pb.RecreateCoinData + (*EditCoinOwnerData)(nil), // 85: api_pb.EditCoinOwnerData + (*EditMultisigData)(nil), // 86: api_pb.EditMultisigData + (*EditCandidatePublicKeyData)(nil), // 87: api_pb.EditCandidatePublicKeyData + (*CreateSwapPoolData)(nil), // 88: api_pb.CreateSwapPoolData + (*AddLiquidityData)(nil), // 89: api_pb.AddLiquidityData + (*RemoveLiquidityData)(nil), // 90: api_pb.RemoveLiquidityData + (*SellSwapPoolData)(nil), // 91: api_pb.SellSwapPoolData + (*SellAllSwapPoolData)(nil), // 92: api_pb.SellAllSwapPoolData + (*BuySwapPoolData)(nil), // 93: api_pb.BuySwapPoolData + (*EditCandidateCommission)(nil), // 94: api_pb.EditCandidateCommission + (*MintTokenData)(nil), // 95: api_pb.MintTokenData + (*BurnTokenData)(nil), // 96: api_pb.BurnTokenData + (*CreateTokenData)(nil), // 97: api_pb.CreateTokenData + (*RecreateTokenData)(nil), // 98: api_pb.RecreateTokenData + (*VoteCommissionData)(nil), // 99: api_pb.VoteCommissionData + (*VoteUpdateData)(nil), // 100: api_pb.VoteUpdateData + (*CommissionVotesResponse_Vote)(nil), // 101: api_pb.CommissionVotesResponse.Vote + (*UpdateVotesResponse_Vote)(nil), // 102: api_pb.UpdateVotesResponse.Vote + (*VersionNetworkResponse_Version)(nil), // 103: api_pb.VersionNetworkResponse.Version + (*NodeInfo_ProtocolVersion)(nil), // 104: api_pb.NodeInfo.ProtocolVersion + (*NodeInfo_Other)(nil), // 105: api_pb.NodeInfo.Other + (*NetInfoResponse_Peer)(nil), // 106: api_pb.NetInfoResponse.Peer + (*NetInfoResponse_Peer_ConnectionStatus)(nil), // 107: api_pb.NetInfoResponse.Peer.ConnectionStatus + (*NetInfoResponse_Peer_ConnectionStatus_Monitor)(nil), // 108: api_pb.NetInfoResponse.Peer.ConnectionStatus.Monitor + (*NetInfoResponse_Peer_ConnectionStatus_Channel)(nil), // 109: api_pb.NetInfoResponse.Peer.ConnectionStatus.Channel + (*GenesisResponse_ConsensusParams)(nil), // 110: api_pb.GenesisResponse.ConsensusParams + (*GenesisResponse_AppState)(nil), // 111: api_pb.GenesisResponse.AppState + (*GenesisResponse_ConsensusParams_Block)(nil), // 112: api_pb.GenesisResponse.ConsensusParams.Block + (*GenesisResponse_ConsensusParams_Evidence)(nil), // 113: api_pb.GenesisResponse.ConsensusParams.Evidence + (*GenesisResponse_ConsensusParams_Validator)(nil), // 114: api_pb.GenesisResponse.ConsensusParams.Validator + (*GenesisResponse_AppState_Validators)(nil), // 115: api_pb.GenesisResponse.AppState.Validators + (*GenesisResponse_AppState_Candidate)(nil), // 116: api_pb.GenesisResponse.AppState.Candidate + (*GenesisResponse_AppState_Coin)(nil), // 117: api_pb.GenesisResponse.AppState.Coin + (*GenesisResponse_AppState_FrozenFund)(nil), // 118: api_pb.GenesisResponse.AppState.FrozenFund + (*GenesisResponse_AppState_Waitlist)(nil), // 119: api_pb.GenesisResponse.AppState.Waitlist + (*GenesisResponse_AppState_Account)(nil), // 120: api_pb.GenesisResponse.AppState.Account + (*GenesisResponse_AppState_HaltBlock)(nil), // 121: api_pb.GenesisResponse.AppState.HaltBlock + (*GenesisResponse_AppState_Pool)(nil), // 122: api_pb.GenesisResponse.AppState.Pool + (*GenesisResponse_AppState_Commission)(nil), // 123: api_pb.GenesisResponse.AppState.Commission + (*GenesisResponse_AppState_CommissionVote)(nil), // 124: api_pb.GenesisResponse.AppState.CommissionVote + (*GenesisResponse_AppState_Candidate_Stake)(nil), // 125: api_pb.GenesisResponse.AppState.Candidate.Stake + (*GenesisResponse_AppState_Account_Balance)(nil), // 126: api_pb.GenesisResponse.AppState.Account.Balance + (*GenesisResponse_AppState_Account_MultisigData)(nil), // 127: api_pb.GenesisResponse.AppState.Account.MultisigData + (*BlockResponse_Validator)(nil), // 128: api_pb.BlockResponse.Validator + (*BlockResponse_Evidence)(nil), // 129: api_pb.BlockResponse.Evidence + (*AddressesResponse_Result)(nil), // 130: api_pb.AddressesResponse.Result + nil, // 131: api_pb.AddressesResponse.AddressesEntry + (*CandidateResponse_Stake)(nil), // 132: api_pb.CandidateResponse.Stake + nil, // 133: api_pb.TransactionResponse.TagsEntry + (*ValidatorsResponse_Result)(nil), // 134: api_pb.ValidatorsResponse.Result + (*SubscribeResponse_Event)(nil), // 135: api_pb.SubscribeResponse.Event + (*FrozenResponse_Frozen)(nil), // 136: api_pb.FrozenResponse.Frozen + (*WaitListResponse_Wait)(nil), // 137: api_pb.WaitListResponse.Wait + (*wrapperspb.UInt64Value)(nil), // 138: google.protobuf.UInt64Value + (*wrapperspb.StringValue)(nil), // 139: google.protobuf.StringValue + (*anypb.Any)(nil), // 140: google.protobuf.Any + (*structpb.Struct)(nil), // 141: google.protobuf.Struct } var file_resources_proto_depIdxs = []int32{ - 75, // 0: api_pb.NodeInfo.protocol_version:type_name -> api_pb.NodeInfo.ProtocolVersion - 76, // 1: api_pb.NodeInfo.other:type_name -> api_pb.NodeInfo.Other - 77, // 2: api_pb.NetInfoResponse.peers:type_name -> api_pb.NetInfoResponse.Peer - 81, // 3: api_pb.GenesisResponse.consensus_params:type_name -> api_pb.GenesisResponse.ConsensusParams - 82, // 4: api_pb.GenesisResponse.app_state:type_name -> api_pb.GenesisResponse.AppState - 0, // 5: api_pb.BlockRequest.fields:type_name -> api_pb.BlockRequest.Field - 96, // 6: api_pb.BlockResponse.transactions:type_name -> api_pb.BlockResponse.Transaction - 97, // 7: api_pb.BlockResponse.validators:type_name -> api_pb.BlockResponse.Validator - 98, // 8: api_pb.BlockResponse.evidence:type_name -> api_pb.BlockResponse.Evidence - 2, // 9: api_pb.AddressBalance.coin:type_name -> api_pb.Coin - 2, // 10: api_pb.AddressDelegatedBalance.coin:type_name -> api_pb.Coin - 13, // 11: api_pb.AddressResponse.balance:type_name -> api_pb.AddressBalance - 14, // 12: api_pb.AddressResponse.delegated:type_name -> api_pb.AddressDelegatedBalance - 13, // 13: api_pb.AddressResponse.total:type_name -> api_pb.AddressBalance - 101, // 14: api_pb.AddressesResponse.addresses:type_name -> api_pb.AddressesResponse.AddressesEntry - 108, // 15: api_pb.CandidateResponse.used_slots:type_name -> google.protobuf.UInt64Value - 108, // 16: api_pb.CandidateResponse.uniq_users:type_name -> google.protobuf.UInt64Value - 109, // 17: api_pb.CandidateResponse.min_stake:type_name -> google.protobuf.StringValue - 102, // 18: api_pb.CandidateResponse.stakes:type_name -> api_pb.CandidateResponse.Stake - 1, // 19: api_pb.CandidatesRequest.status:type_name -> api_pb.CandidatesRequest.CandidateStatus - 19, // 20: api_pb.CandidatesResponse.candidates:type_name -> api_pb.CandidateResponse - 109, // 21: api_pb.CoinInfoResponse.owner_address:type_name -> google.protobuf.StringValue - 2, // 22: api_pb.TransactionResponse.gas_coin:type_name -> api_pb.Coin - 110, // 23: api_pb.TransactionResponse.data:type_name -> google.protobuf.Any - 103, // 24: api_pb.TransactionResponse.tags:type_name -> api_pb.TransactionResponse.TagsEntry - 27, // 25: api_pb.TransactionsResponse.transactions:type_name -> api_pb.TransactionResponse - 111, // 26: api_pb.EventsResponse.events:type_name -> google.protobuf.Struct - 104, // 27: api_pb.ValidatorsResponse.validators:type_name -> api_pb.ValidatorsResponse.Result - 111, // 28: api_pb.SubscribeResponse.data:type_name -> google.protobuf.Struct - 105, // 29: api_pb.SubscribeResponse.events:type_name -> api_pb.SubscribeResponse.Event - 108, // 30: api_pb.FrozenRequest.coin_id:type_name -> google.protobuf.UInt64Value - 106, // 31: api_pb.FrozenResponse.frozen:type_name -> api_pb.FrozenResponse.Frozen - 107, // 32: api_pb.WaitListResponse.list:type_name -> api_pb.WaitListResponse.Wait - 2, // 33: api_pb.SendData.coin:type_name -> api_pb.Coin - 2, // 34: api_pb.SellCoinData.coin_to_sell:type_name -> api_pb.Coin - 2, // 35: api_pb.SellCoinData.coin_to_buy:type_name -> api_pb.Coin - 2, // 36: api_pb.SellAllCoinData.coin_to_sell:type_name -> api_pb.Coin - 2, // 37: api_pb.SellAllCoinData.coin_to_buy:type_name -> api_pb.Coin - 2, // 38: api_pb.BuyCoinData.coin_to_buy:type_name -> api_pb.Coin - 2, // 39: api_pb.BuyCoinData.coin_to_sell:type_name -> api_pb.Coin - 2, // 40: api_pb.DeclareCandidacyData.coin:type_name -> api_pb.Coin - 2, // 41: api_pb.DelegateData.coin:type_name -> api_pb.Coin - 2, // 42: api_pb.UnbondData.coin:type_name -> api_pb.Coin - 55, // 43: api_pb.MultiSendData.list:type_name -> api_pb.SendData - 108, // 44: api_pb.NetInfoResponse.Peer.latest_block_height:type_name -> google.protobuf.UInt64Value - 3, // 45: api_pb.NetInfoResponse.Peer.node_info:type_name -> api_pb.NodeInfo - 78, // 46: api_pb.NetInfoResponse.Peer.connection_status:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus - 79, // 47: api_pb.NetInfoResponse.Peer.ConnectionStatus.SendMonitor:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus.Monitor - 79, // 48: api_pb.NetInfoResponse.Peer.ConnectionStatus.RecvMonitor:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus.Monitor - 80, // 49: api_pb.NetInfoResponse.Peer.ConnectionStatus.channels:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus.Channel - 83, // 50: api_pb.GenesisResponse.ConsensusParams.block:type_name -> api_pb.GenesisResponse.ConsensusParams.Block - 84, // 51: api_pb.GenesisResponse.ConsensusParams.evidence:type_name -> api_pb.GenesisResponse.ConsensusParams.Evidence - 85, // 52: api_pb.GenesisResponse.ConsensusParams.validator:type_name -> api_pb.GenesisResponse.ConsensusParams.Validator - 86, // 53: api_pb.GenesisResponse.AppState.validators:type_name -> api_pb.GenesisResponse.AppState.Validators - 87, // 54: api_pb.GenesisResponse.AppState.candidates:type_name -> api_pb.GenesisResponse.AppState.Candidate - 88, // 55: api_pb.GenesisResponse.AppState.coins:type_name -> api_pb.GenesisResponse.AppState.Coin - 89, // 56: api_pb.GenesisResponse.AppState.frozen_funds:type_name -> api_pb.GenesisResponse.AppState.FrozenFund - 90, // 57: api_pb.GenesisResponse.AppState.waitlist:type_name -> api_pb.GenesisResponse.AppState.Waitlist - 91, // 58: api_pb.GenesisResponse.AppState.accounts:type_name -> api_pb.GenesisResponse.AppState.Account - 92, // 59: api_pb.GenesisResponse.AppState.halt_blocks:type_name -> api_pb.GenesisResponse.AppState.HaltBlock - 93, // 60: api_pb.GenesisResponse.AppState.Candidate.stakes:type_name -> api_pb.GenesisResponse.AppState.Candidate.Stake - 93, // 61: api_pb.GenesisResponse.AppState.Candidate.updates:type_name -> api_pb.GenesisResponse.AppState.Candidate.Stake - 109, // 62: api_pb.GenesisResponse.AppState.Coin.owner_address:type_name -> google.protobuf.StringValue - 109, // 63: api_pb.GenesisResponse.AppState.FrozenFund.candidate_key:type_name -> google.protobuf.StringValue - 94, // 64: api_pb.GenesisResponse.AppState.Account.balance:type_name -> api_pb.GenesisResponse.AppState.Account.Balance - 95, // 65: api_pb.GenesisResponse.AppState.Account.multisig_data:type_name -> api_pb.GenesisResponse.AppState.Account.MultisigData - 110, // 66: api_pb.BlockResponse.Transaction.data:type_name -> google.protobuf.Any - 2, // 67: api_pb.BlockResponse.Transaction.gas_coin:type_name -> api_pb.Coin - 99, // 68: api_pb.BlockResponse.Transaction.tags:type_name -> api_pb.BlockResponse.Transaction.TagsEntry - 111, // 69: api_pb.BlockResponse.Evidence.evidence:type_name -> google.protobuf.Struct - 13, // 70: api_pb.AddressesResponse.Result.balance:type_name -> api_pb.AddressBalance - 14, // 71: api_pb.AddressesResponse.Result.delegated:type_name -> api_pb.AddressDelegatedBalance - 13, // 72: api_pb.AddressesResponse.Result.total:type_name -> api_pb.AddressBalance - 100, // 73: api_pb.AddressesResponse.AddressesEntry.value:type_name -> api_pb.AddressesResponse.Result - 2, // 74: api_pb.CandidateResponse.Stake.coin:type_name -> api_pb.Coin - 2, // 75: api_pb.FrozenResponse.Frozen.coin:type_name -> api_pb.Coin - 2, // 76: api_pb.WaitListResponse.Wait.coin:type_name -> api_pb.Coin - 77, // [77:77] is the sub-list for method output_type - 77, // [77:77] is the sub-list for method input_type - 77, // [77:77] is the sub-list for extension type_name - 77, // [77:77] is the sub-list for extension extendee - 0, // [0:77] is the sub-list for field type_name + 0, // 0: api_pb.BlocksRequest.fields:type_name -> api_pb.BlockField + 23, // 1: api_pb.BlocksResponse.blocks:type_name -> api_pb.BlockResponse + 101, // 2: api_pb.CommissionVotesResponse.votes:type_name -> api_pb.CommissionVotesResponse.Vote + 102, // 3: api_pb.UpdateVotesResponse.votes:type_name -> api_pb.UpdateVotesResponse.Vote + 103, // 4: api_pb.VersionNetworkResponse.versions:type_name -> api_pb.VersionNetworkResponse.Version + 3, // 5: api_pb.PriceCommissionResponse.coin:type_name -> api_pb.Coin + 104, // 6: api_pb.NodeInfo.protocol_version:type_name -> api_pb.NodeInfo.ProtocolVersion + 105, // 7: api_pb.NodeInfo.other:type_name -> api_pb.NodeInfo.Other + 106, // 8: api_pb.NetInfoResponse.peers:type_name -> api_pb.NetInfoResponse.Peer + 110, // 9: api_pb.GenesisResponse.consensus_params:type_name -> api_pb.GenesisResponse.ConsensusParams + 111, // 10: api_pb.GenesisResponse.app_state:type_name -> api_pb.GenesisResponse.AppState + 0, // 11: api_pb.BlockRequest.fields:type_name -> api_pb.BlockField + 41, // 12: api_pb.BlockResponse.transactions:type_name -> api_pb.TransactionResponse + 128, // 13: api_pb.BlockResponse.validators:type_name -> api_pb.BlockResponse.Validator + 129, // 14: api_pb.BlockResponse.evidence:type_name -> api_pb.BlockResponse.Evidence + 3, // 15: api_pb.AddressBalance.coin:type_name -> api_pb.Coin + 3, // 16: api_pb.AddressDelegatedBalance.coin:type_name -> api_pb.Coin + 27, // 17: api_pb.AddressResponse.balance:type_name -> api_pb.AddressBalance + 28, // 18: api_pb.AddressResponse.delegated:type_name -> api_pb.AddressDelegatedBalance + 27, // 19: api_pb.AddressResponse.total:type_name -> api_pb.AddressBalance + 131, // 20: api_pb.AddressesResponse.addresses:type_name -> api_pb.AddressesResponse.AddressesEntry + 138, // 21: api_pb.CandidateResponse.used_slots:type_name -> google.protobuf.UInt64Value + 138, // 22: api_pb.CandidateResponse.uniq_users:type_name -> google.protobuf.UInt64Value + 139, // 23: api_pb.CandidateResponse.min_stake:type_name -> google.protobuf.StringValue + 132, // 24: api_pb.CandidateResponse.stakes:type_name -> api_pb.CandidateResponse.Stake + 2, // 25: api_pb.CandidatesRequest.status:type_name -> api_pb.CandidatesRequest.CandidateStatus + 33, // 26: api_pb.CandidatesResponse.candidates:type_name -> api_pb.CandidateResponse + 139, // 27: api_pb.CoinInfoResponse.owner_address:type_name -> google.protobuf.StringValue + 3, // 28: api_pb.TransactionResponse.gas_coin:type_name -> api_pb.Coin + 140, // 29: api_pb.TransactionResponse.data:type_name -> google.protobuf.Any + 133, // 30: api_pb.TransactionResponse.tags:type_name -> api_pb.TransactionResponse.TagsEntry + 41, // 31: api_pb.TransactionsResponse.transactions:type_name -> api_pb.TransactionResponse + 1, // 32: api_pb.EstimateCoinBuyRequest.swap_from:type_name -> api_pb.SwapFrom + 1, // 33: api_pb.EstimateCoinBuyResponse.swap_from:type_name -> api_pb.SwapFrom + 1, // 34: api_pb.EstimateCoinSellRequest.swap_from:type_name -> api_pb.SwapFrom + 1, // 35: api_pb.EstimateCoinSellResponse.swap_from:type_name -> api_pb.SwapFrom + 1, // 36: api_pb.EstimateCoinSellAllRequest.swap_from:type_name -> api_pb.SwapFrom + 1, // 37: api_pb.EstimateCoinSellAllResponse.swap_from:type_name -> api_pb.SwapFrom + 141, // 38: api_pb.EventsResponse.events:type_name -> google.protobuf.Struct + 134, // 39: api_pb.ValidatorsResponse.validators:type_name -> api_pb.ValidatorsResponse.Result + 141, // 40: api_pb.SubscribeResponse.data:type_name -> google.protobuf.Struct + 135, // 41: api_pb.SubscribeResponse.events:type_name -> api_pb.SubscribeResponse.Event + 138, // 42: api_pb.FrozenRequest.coin_id:type_name -> google.protobuf.UInt64Value + 136, // 43: api_pb.FrozenResponse.frozen:type_name -> api_pb.FrozenResponse.Frozen + 137, // 44: api_pb.WaitListResponse.list:type_name -> api_pb.WaitListResponse.Wait + 3, // 45: api_pb.SendData.coin:type_name -> api_pb.Coin + 3, // 46: api_pb.SellCoinData.coin_to_sell:type_name -> api_pb.Coin + 3, // 47: api_pb.SellCoinData.coin_to_buy:type_name -> api_pb.Coin + 3, // 48: api_pb.SellAllCoinData.coin_to_sell:type_name -> api_pb.Coin + 3, // 49: api_pb.SellAllCoinData.coin_to_buy:type_name -> api_pb.Coin + 3, // 50: api_pb.BuyCoinData.coin_to_buy:type_name -> api_pb.Coin + 3, // 51: api_pb.BuyCoinData.coin_to_sell:type_name -> api_pb.Coin + 3, // 52: api_pb.DeclareCandidacyData.coin:type_name -> api_pb.Coin + 3, // 53: api_pb.DelegateData.coin:type_name -> api_pb.Coin + 3, // 54: api_pb.UnbondData.coin:type_name -> api_pb.Coin + 69, // 55: api_pb.MultiSendData.list:type_name -> api_pb.SendData + 3, // 56: api_pb.CreateSwapPoolData.coin0:type_name -> api_pb.Coin + 3, // 57: api_pb.CreateSwapPoolData.coin1:type_name -> api_pb.Coin + 3, // 58: api_pb.AddLiquidityData.coin0:type_name -> api_pb.Coin + 3, // 59: api_pb.AddLiquidityData.coin1:type_name -> api_pb.Coin + 3, // 60: api_pb.RemoveLiquidityData.coin0:type_name -> api_pb.Coin + 3, // 61: api_pb.RemoveLiquidityData.coin1:type_name -> api_pb.Coin + 3, // 62: api_pb.SellSwapPoolData.coins:type_name -> api_pb.Coin + 3, // 63: api_pb.SellAllSwapPoolData.coins:type_name -> api_pb.Coin + 3, // 64: api_pb.BuySwapPoolData.coins:type_name -> api_pb.Coin + 3, // 65: api_pb.MintTokenData.coin:type_name -> api_pb.Coin + 3, // 66: api_pb.BurnTokenData.coin:type_name -> api_pb.Coin + 3, // 67: api_pb.VoteCommissionData.coin:type_name -> api_pb.Coin + 13, // 68: api_pb.CommissionVotesResponse.Vote.price:type_name -> api_pb.PriceCommissionResponse + 138, // 69: api_pb.NetInfoResponse.Peer.latest_block_height:type_name -> google.protobuf.UInt64Value + 17, // 70: api_pb.NetInfoResponse.Peer.node_info:type_name -> api_pb.NodeInfo + 107, // 71: api_pb.NetInfoResponse.Peer.connection_status:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus + 108, // 72: api_pb.NetInfoResponse.Peer.ConnectionStatus.SendMonitor:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus.Monitor + 108, // 73: api_pb.NetInfoResponse.Peer.ConnectionStatus.RecvMonitor:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus.Monitor + 109, // 74: api_pb.NetInfoResponse.Peer.ConnectionStatus.channels:type_name -> api_pb.NetInfoResponse.Peer.ConnectionStatus.Channel + 112, // 75: api_pb.GenesisResponse.ConsensusParams.block:type_name -> api_pb.GenesisResponse.ConsensusParams.Block + 113, // 76: api_pb.GenesisResponse.ConsensusParams.evidence:type_name -> api_pb.GenesisResponse.ConsensusParams.Evidence + 114, // 77: api_pb.GenesisResponse.ConsensusParams.validator:type_name -> api_pb.GenesisResponse.ConsensusParams.Validator + 115, // 78: api_pb.GenesisResponse.AppState.validators:type_name -> api_pb.GenesisResponse.AppState.Validators + 116, // 79: api_pb.GenesisResponse.AppState.candidates:type_name -> api_pb.GenesisResponse.AppState.Candidate + 117, // 80: api_pb.GenesisResponse.AppState.coins:type_name -> api_pb.GenesisResponse.AppState.Coin + 118, // 81: api_pb.GenesisResponse.AppState.frozen_funds:type_name -> api_pb.GenesisResponse.AppState.FrozenFund + 119, // 82: api_pb.GenesisResponse.AppState.waitlist:type_name -> api_pb.GenesisResponse.AppState.Waitlist + 120, // 83: api_pb.GenesisResponse.AppState.accounts:type_name -> api_pb.GenesisResponse.AppState.Account + 121, // 84: api_pb.GenesisResponse.AppState.halt_blocks:type_name -> api_pb.GenesisResponse.AppState.HaltBlock + 122, // 85: api_pb.GenesisResponse.AppState.pools:type_name -> api_pb.GenesisResponse.AppState.Pool + 123, // 86: api_pb.GenesisResponse.AppState.commission:type_name -> api_pb.GenesisResponse.AppState.Commission + 124, // 87: api_pb.GenesisResponse.AppState.commission_votes:type_name -> api_pb.GenesisResponse.AppState.CommissionVote + 125, // 88: api_pb.GenesisResponse.AppState.Candidate.stakes:type_name -> api_pb.GenesisResponse.AppState.Candidate.Stake + 125, // 89: api_pb.GenesisResponse.AppState.Candidate.updates:type_name -> api_pb.GenesisResponse.AppState.Candidate.Stake + 139, // 90: api_pb.GenesisResponse.AppState.Coin.owner_address:type_name -> google.protobuf.StringValue + 139, // 91: api_pb.GenesisResponse.AppState.FrozenFund.candidate_key:type_name -> google.protobuf.StringValue + 126, // 92: api_pb.GenesisResponse.AppState.Account.balance:type_name -> api_pb.GenesisResponse.AppState.Account.Balance + 127, // 93: api_pb.GenesisResponse.AppState.Account.multisig_data:type_name -> api_pb.GenesisResponse.AppState.Account.MultisigData + 123, // 94: api_pb.GenesisResponse.AppState.CommissionVote.commission:type_name -> api_pb.GenesisResponse.AppState.Commission + 141, // 95: api_pb.BlockResponse.Evidence.evidence:type_name -> google.protobuf.Struct + 27, // 96: api_pb.AddressesResponse.Result.balance:type_name -> api_pb.AddressBalance + 28, // 97: api_pb.AddressesResponse.Result.delegated:type_name -> api_pb.AddressDelegatedBalance + 27, // 98: api_pb.AddressesResponse.Result.total:type_name -> api_pb.AddressBalance + 130, // 99: api_pb.AddressesResponse.AddressesEntry.value:type_name -> api_pb.AddressesResponse.Result + 3, // 100: api_pb.CandidateResponse.Stake.coin:type_name -> api_pb.Coin + 3, // 101: api_pb.FrozenResponse.Frozen.coin:type_name -> api_pb.Coin + 3, // 102: api_pb.WaitListResponse.Wait.coin:type_name -> api_pb.Coin + 103, // [103:103] is the sub-list for method output_type + 103, // [103:103] is the sub-list for method input_type + 103, // [103:103] is the sub-list for extension type_name + 103, // [103:103] is the sub-list for extension extendee + 0, // [0:103] is the sub-list for field type_name } func init() { file_resources_proto_init() } @@ -8569,7 +12269,163 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlocksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlocksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommissionVotesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommissionVotesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateVotesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateVotesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VersionNetworkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VersionNetworkResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PriceCommissionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PriceCommissionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapPoolRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapPoolResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapPoolProviderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo); i { case 0: return &v.state @@ -8581,7 +12437,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetInfoResponse); i { case 0: return &v.state @@ -8593,7 +12449,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatusResponse); i { case 0: return &v.state @@ -8605,7 +12461,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse); i { case 0: return &v.state @@ -8617,7 +12473,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MinGasPriceResponse); i { case 0: return &v.state @@ -8629,7 +12485,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockRequest); i { case 0: return &v.state @@ -8641,7 +12497,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockResponse); i { case 0: return &v.state @@ -8653,7 +12509,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MaxGasPriceRequest); i { case 0: return &v.state @@ -8665,7 +12521,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MaxGasPriceResponse); i { case 0: return &v.state @@ -8677,7 +12533,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressRequest); i { case 0: return &v.state @@ -8689,7 +12545,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressBalance); i { case 0: return &v.state @@ -8701,7 +12557,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressDelegatedBalance); i { case 0: return &v.state @@ -8713,7 +12569,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressResponse); i { case 0: return &v.state @@ -8725,7 +12581,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressesRequest); i { case 0: return &v.state @@ -8737,7 +12593,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressesResponse); i { case 0: return &v.state @@ -8749,7 +12605,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CandidateRequest); i { case 0: return &v.state @@ -8761,7 +12617,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CandidateResponse); i { case 0: return &v.state @@ -8773,7 +12629,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CandidatesRequest); i { case 0: return &v.state @@ -8785,7 +12641,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CandidatesResponse); i { case 0: return &v.state @@ -8797,8 +12653,188 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CoinIdRequest); i { + file_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CoinIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CoinInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CoinInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateCoinBuyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateCoinBuyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateCoinSellRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateCoinSellResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateCoinSellAllRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateCoinSellAllResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateTxCommissionRequest); i { case 0: return &v.state case 1: @@ -8809,8 +12845,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CoinInfoRequest); i { + file_resources_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateTxCommissionResponse); i { case 0: return &v.state case 1: @@ -8821,8 +12857,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CoinInfoResponse); i { + file_resources_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventsRequest); i { case 0: return &v.state case 1: @@ -8833,8 +12869,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendTransactionResponse); i { + file_resources_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventsResponse); i { case 0: return &v.state case 1: @@ -8845,8 +12881,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendTransactionRequest); i { + file_resources_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MissedBlocksRequest); i { case 0: return &v.state case 1: @@ -8857,8 +12893,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransactionResponse); i { + file_resources_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MissedBlocksResponse); i { case 0: return &v.state case 1: @@ -8869,8 +12905,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransactionRequest); i { + file_resources_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnconfirmedTxsResponse); i { case 0: return &v.state case 1: @@ -8881,8 +12917,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransactionsResponse); i { + file_resources_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnconfirmedTxsRequest); i { case 0: return &v.state case 1: @@ -8893,8 +12929,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransactionsRequest); i { + file_resources_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidatorsRequest); i { case 0: return &v.state case 1: @@ -8905,8 +12941,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateCoinBuyRequest); i { + file_resources_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidatorsResponse); i { case 0: return &v.state case 1: @@ -8917,8 +12953,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateCoinBuyResponse); i { + file_resources_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeRequest); i { case 0: return &v.state case 1: @@ -8929,8 +12965,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateCoinSellRequest); i { + file_resources_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeResponse); i { case 0: return &v.state case 1: @@ -8941,8 +12977,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateCoinSellResponse); i { + file_resources_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HaltsRequest); i { case 0: return &v.state case 1: @@ -8953,8 +12989,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateCoinSellAllRequest); i { + file_resources_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HaltsResponse); i { case 0: return &v.state case 1: @@ -8965,8 +13001,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateCoinSellAllResponse); i { + file_resources_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FrozenRequest); i { case 0: return &v.state case 1: @@ -8977,8 +13013,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateTxCommissionResponse); i { + file_resources_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FrozenResponse); i { case 0: return &v.state case 1: @@ -8989,8 +13025,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EstimateTxCommissionRequest); i { + file_resources_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitListRequest); i { case 0: return &v.state case 1: @@ -9001,8 +13037,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventsRequest); i { + file_resources_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitListResponse); i { case 0: return &v.state case 1: @@ -9013,8 +13049,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventsResponse); i { + file_resources_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendData); i { case 0: return &v.state case 1: @@ -9025,8 +13061,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MissedBlocksRequest); i { + file_resources_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SellCoinData); i { case 0: return &v.state case 1: @@ -9037,8 +13073,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MissedBlocksResponse); i { + file_resources_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SellAllCoinData); i { case 0: return &v.state case 1: @@ -9049,8 +13085,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnconfirmedTxsResponse); i { + file_resources_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuyCoinData); i { case 0: return &v.state case 1: @@ -9061,8 +13097,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnconfirmedTxsRequest); i { + file_resources_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateCoinData); i { case 0: return &v.state case 1: @@ -9073,8 +13109,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorsRequest); i { + file_resources_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclareCandidacyData); i { case 0: return &v.state case 1: @@ -9085,8 +13121,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorsResponse); i { + file_resources_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegateData); i { case 0: return &v.state case 1: @@ -9097,8 +13133,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeRequest); i { + file_resources_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnbondData); i { case 0: return &v.state case 1: @@ -9109,8 +13145,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeResponse); i { + file_resources_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedeemCheckData); i { case 0: return &v.state case 1: @@ -9121,8 +13157,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HaltsRequest); i { + file_resources_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetCandidateOnData); i { case 0: return &v.state case 1: @@ -9133,8 +13169,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HaltsResponse); i { + file_resources_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetCandidateOffData); i { case 0: return &v.state case 1: @@ -9145,8 +13181,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FrozenRequest); i { + file_resources_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateMultisigData); i { case 0: return &v.state case 1: @@ -9157,8 +13193,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FrozenResponse); i { + file_resources_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiSendData); i { case 0: return &v.state case 1: @@ -9169,8 +13205,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WaitListRequest); i { + file_resources_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditCandidateData); i { case 0: return &v.state case 1: @@ -9181,8 +13217,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WaitListResponse); i { + file_resources_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetHaltBlockData); i { case 0: return &v.state case 1: @@ -9193,8 +13229,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendData); i { + file_resources_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecreateCoinData); i { case 0: return &v.state case 1: @@ -9205,8 +13241,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SellCoinData); i { + file_resources_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditCoinOwnerData); i { case 0: return &v.state case 1: @@ -9217,8 +13253,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SellAllCoinData); i { + file_resources_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditMultisigData); i { case 0: return &v.state case 1: @@ -9229,8 +13265,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BuyCoinData); i { + file_resources_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditCandidatePublicKeyData); i { case 0: return &v.state case 1: @@ -9241,8 +13277,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateCoinData); i { + file_resources_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSwapPoolData); i { case 0: return &v.state case 1: @@ -9253,8 +13289,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeclareCandidacyData); i { + file_resources_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddLiquidityData); i { case 0: return &v.state case 1: @@ -9265,8 +13301,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegateData); i { + file_resources_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveLiquidityData); i { case 0: return &v.state case 1: @@ -9277,8 +13313,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbondData); i { + file_resources_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SellSwapPoolData); i { case 0: return &v.state case 1: @@ -9289,8 +13325,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedeemCheckData); i { + file_resources_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SellAllSwapPoolData); i { case 0: return &v.state case 1: @@ -9301,8 +13337,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetCandidateOnData); i { + file_resources_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuySwapPoolData); i { case 0: return &v.state case 1: @@ -9313,8 +13349,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetCandidateOffData); i { + file_resources_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditCandidateCommission); i { case 0: return &v.state case 1: @@ -9325,8 +13361,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateMultisigData); i { + file_resources_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MintTokenData); i { case 0: return &v.state case 1: @@ -9337,8 +13373,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MultiSendData); i { + file_resources_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BurnTokenData); i { case 0: return &v.state case 1: @@ -9349,8 +13385,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EditCandidateData); i { + file_resources_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTokenData); i { case 0: return &v.state case 1: @@ -9361,8 +13397,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetHaltBlockData); i { + file_resources_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecreateTokenData); i { case 0: return &v.state case 1: @@ -9373,8 +13409,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecreateCoinData); i { + file_resources_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoteCommissionData); i { case 0: return &v.state case 1: @@ -9385,8 +13421,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EditCoinOwnerData); i { + file_resources_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoteUpdateData); i { case 0: return &v.state case 1: @@ -9397,8 +13433,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EditMultisigData); i { + file_resources_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommissionVotesResponse_Vote); i { case 0: return &v.state case 1: @@ -9409,8 +13445,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceVoteData); i { + file_resources_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateVotesResponse_Vote); i { case 0: return &v.state case 1: @@ -9421,8 +13457,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EditCandidatePublicKeyData); i { + file_resources_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VersionNetworkResponse_Version); i { case 0: return &v.state case 1: @@ -9433,7 +13469,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_ProtocolVersion); i { case 0: return &v.state @@ -9445,7 +13481,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeInfo_Other); i { case 0: return &v.state @@ -9457,7 +13493,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetInfoResponse_Peer); i { case 0: return &v.state @@ -9469,7 +13505,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetInfoResponse_Peer_ConnectionStatus); i { case 0: return &v.state @@ -9481,7 +13517,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetInfoResponse_Peer_ConnectionStatus_Monitor); i { case 0: return &v.state @@ -9493,7 +13529,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetInfoResponse_Peer_ConnectionStatus_Channel); i { case 0: return &v.state @@ -9505,7 +13541,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_ConsensusParams); i { case 0: return &v.state @@ -9517,7 +13553,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState); i { case 0: return &v.state @@ -9529,7 +13565,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_ConsensusParams_Block); i { case 0: return &v.state @@ -9541,7 +13577,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_ConsensusParams_Evidence); i { case 0: return &v.state @@ -9553,7 +13589,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_ConsensusParams_Validator); i { case 0: return &v.state @@ -9565,7 +13601,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_Validators); i { case 0: return &v.state @@ -9577,7 +13613,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_Candidate); i { case 0: return &v.state @@ -9589,7 +13625,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_Coin); i { case 0: return &v.state @@ -9601,7 +13637,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_FrozenFund); i { case 0: return &v.state @@ -9613,7 +13649,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_Waitlist); i { case 0: return &v.state @@ -9625,7 +13661,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_Account); i { case 0: return &v.state @@ -9637,7 +13673,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisResponse_AppState_HaltBlock); i { case 0: return &v.state @@ -9649,8 +13685,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisResponse_AppState_Candidate_Stake); i { + file_resources_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisResponse_AppState_Pool); i { case 0: return &v.state case 1: @@ -9661,8 +13697,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisResponse_AppState_Account_Balance); i { + file_resources_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisResponse_AppState_Commission); i { case 0: return &v.state case 1: @@ -9673,8 +13709,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisResponse_AppState_Account_MultisigData); i { + file_resources_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisResponse_AppState_CommissionVote); i { case 0: return &v.state case 1: @@ -9685,8 +13721,8 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockResponse_Transaction); i { + file_resources_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisResponse_AppState_Candidate_Stake); i { case 0: return &v.state case 1: @@ -9697,7 +13733,31 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisResponse_AppState_Account_Balance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisResponse_AppState_Account_MultisigData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_resources_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockResponse_Validator); i { case 0: return &v.state @@ -9709,7 +13769,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockResponse_Evidence); i { case 0: return &v.state @@ -9721,7 +13781,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddressesResponse_Result); i { case 0: return &v.state @@ -9733,7 +13793,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CandidateResponse_Stake); i { case 0: return &v.state @@ -9745,7 +13805,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorsResponse_Result); i { case 0: return &v.state @@ -9757,7 +13817,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeResponse_Event); i { case 0: return &v.state @@ -9769,7 +13829,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FrozenResponse_Frozen); i { case 0: return &v.state @@ -9781,7 +13841,7 @@ func file_resources_proto_init() { return nil } } - file_resources_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_resources_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WaitListResponse_Wait); i { case 0: return &v.state @@ -9794,19 +13854,23 @@ func file_resources_proto_init() { } } } - file_resources_proto_msgTypes[29].OneofWrappers = []interface{}{ + file_resources_proto_msgTypes[42].OneofWrappers = []interface{}{ (*EstimateCoinBuyRequest_CoinIdToBuy)(nil), (*EstimateCoinBuyRequest_CoinToBuy)(nil), (*EstimateCoinBuyRequest_CoinIdToSell)(nil), (*EstimateCoinBuyRequest_CoinToSell)(nil), + (*EstimateCoinBuyRequest_CoinIdCommission)(nil), + (*EstimateCoinBuyRequest_CoinCommission)(nil), } - file_resources_proto_msgTypes[31].OneofWrappers = []interface{}{ + file_resources_proto_msgTypes[44].OneofWrappers = []interface{}{ (*EstimateCoinSellRequest_CoinIdToBuy)(nil), (*EstimateCoinSellRequest_CoinToBuy)(nil), (*EstimateCoinSellRequest_CoinIdToSell)(nil), (*EstimateCoinSellRequest_CoinToSell)(nil), + (*EstimateCoinSellRequest_CoinIdCommission)(nil), + (*EstimateCoinSellRequest_CoinCommission)(nil), } - file_resources_proto_msgTypes[33].OneofWrappers = []interface{}{ + file_resources_proto_msgTypes[46].OneofWrappers = []interface{}{ (*EstimateCoinSellAllRequest_CoinIdToBuy)(nil), (*EstimateCoinSellAllRequest_CoinToBuy)(nil), (*EstimateCoinSellAllRequest_CoinIdToSell)(nil), @@ -9817,8 +13881,8 @@ func file_resources_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_resources_proto_rawDesc, - NumEnums: 2, - NumMessages: 106, + NumEnums: 3, + NumMessages: 135, NumExtensions: 0, NumServices: 0, }, diff --git a/api_pb/swagger.pb.go b/api_pb/swagger.pb.go index 0173c4b..192211e 100644 --- a/api_pb/swagger.pb.go +++ b/api_pb/swagger.pb.go @@ -157,8 +157,8 @@ var file_swagger_proto_rawDesc = []byte{ 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xdc, 0x03, 0x5a, - 0x08, 0x2e, 0x3b, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x92, 0x41, 0xce, 0x03, 0x12, 0xbb, 0x01, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0xda, 0x03, 0x5a, + 0x08, 0x2e, 0x3b, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x92, 0x41, 0xcc, 0x03, 0x12, 0xb9, 0x01, 0x0a, 0x12, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x4e, 0x6f, 0x64, 0x65, 0x20, 0x41, 0x50, 0x49, 0x20, 0x76, 0x32, 0x22, 0x55, 0x0a, 0x13, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x67, 0x52, 0x50, 0x43, 0x2d, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x2f, 0x68, 0x74, 0x74, @@ -170,25 +170,25 @@ var file_swagger_proto_rawDesc = []byte{ 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x67, 0x6f, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, 0x43, - 0x45, 0x4e, 0x53, 0x45, 0x32, 0x05, 0x31, 0x2e, 0x32, 0x2e, 0x31, 0x22, 0x03, 0x2f, 0x76, 0x32, - 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, - 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, - 0x6a, 0x73, 0x6f, 0x6e, 0x52, 0xa3, 0x01, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x12, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x6e, 0x20, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x12, 0x76, 0x0a, 0x13, 0x1a, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x6f, 0x64, 0x79, 0x32, 0x5f, 0x7b, 0x22, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x22, 0x3a, 0x20, 0x7b, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x35, - 0x30, 0x34, 0x22, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, - 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, - 0x65, 0x20, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x3a, 0x20, 0x7b, 0x22, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x3a, 0x22, 0x41, 0x42, 0x43, 0x22, 0x7d, 0x7d, 0x7d, 0x72, 0x3f, 0x0a, 0x1c, 0x4d, 0x6f, - 0x72, 0x65, 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x20, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1f, 0x68, 0x74, 0x74, 0x70, - 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x45, 0x4e, 0x53, 0x45, 0x32, 0x03, 0x31, 0x2e, 0x33, 0x22, 0x03, 0x2f, 0x76, 0x32, 0x32, 0x10, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, + 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, + 0x6f, 0x6e, 0x52, 0xa3, 0x01, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x97, + 0x01, 0x0a, 0x1d, 0x41, 0x6e, 0x20, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x12, 0x76, 0x0a, 0x13, 0x1a, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x42, 0x6f, 0x64, 0x79, 0x32, 0x5f, 0x7b, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x22, 0x3a, 0x20, 0x7b, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x35, 0x30, 0x34, + 0x22, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x20, 0x22, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x22, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x3a, 0x20, 0x7b, 0x22, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, + 0x22, 0x41, 0x42, 0x43, 0x22, 0x7d, 0x7d, 0x7d, 0x72, 0x3f, 0x0a, 0x1c, 0x4d, 0x6f, 0x72, 0x65, + 0x20, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x4d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1f, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/docs/api.swagger.json b/docs/api.swagger.json index 8d17173..197977e 100644 --- a/docs/api.swagger.json +++ b/docs/api.swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Minter Node API v2", - "version": "1.2.1", + "version": "1.3", "contact": { "name": "Minter gRPC-Gateway", "url": "https://github.com/MinterTeam/node-grpc-gateway", @@ -13,6 +13,11 @@ "url": "https://github.com/MinterTeam/minter-go-node/blob/master/LICENSE" } }, + "tags": [ + { + "name": "ApiService" + } + ], "basePath": "/v2", "consumes": [ "application/json" @@ -72,7 +77,7 @@ } ], "tags": [ - "ApiService" + "Balance" ] } }, @@ -131,7 +136,7 @@ } ], "tags": [ - "ApiService" + "Balance" ] } }, @@ -189,17 +194,98 @@ ] }, "collectionFormat": "multi" + }, + { + "name": "failed_txs", + "in": "query", + "required": false, + "type": "boolean", + "default": "false" + } + ], + "tags": [ + "Blockchain" + ] + } + }, + "/blocks": { + "get": { + "summary": "Blocks", + "operationId": "Blocks", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BlocksResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "parameters": [ + { + "name": "from_height", + "in": "query", + "required": true, + "type": "integer", + "format": "uint64" + }, + { + "name": "to_height", + "in": "query", + "required": true, + "type": "integer", + "format": "uint64" + }, + { + "name": "fields", + "in": "query", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "transactions", + "missed", + "block_reward", + "size", + "proposer", + "validators", + "evidence" + ] + }, + "collectionFormat": "multi" + }, + { + "name": "failed_txs", + "in": "query", + "required": false, + "type": "boolean", + "default": "false" } ], "tags": [ - "ApiService" + "Blockchain" ] } }, "/candidate/{public_key}": { "get": { "summary": "Candidate", - "description": "Candidate returns candidate’s info by provided public key.\n\n## Fields of response\n| Name | Description |\n| --------- | ---------------------------- | \n| reward_address | Address where validator’s rewards go to. | \n| owner_address | Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. It also enables the owner to edit the node by sending EditCandidate. | \n| control_address | Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. | \n| total_stake | Total stake of a candidate | \n| public_key | Public key of a candidate | \n| commission | Commission (from 0 to 100) from rewards which delegators will pay to validator | \n| used_slots | Number of occupied steak slots. Note: filled in when request includes_stakes | \n| uniq_users | Number of unique wallets in steaks. Note: filled in when request includes_stakes | \n| min_stake | Smallest steak size. Note: filled in when request includes_stakes | \n| stakes | List of stakes. Note: filled in when request includes_stakes | \n| status | Candidate status. Available values: offline = 1, online = 2 | \n| validator | Is a validator at the current height |", + "description": "Candidate returns candidate’s info by provided public key.\n\n## Fields of response\n| Name | Description |\n| --------- | ---------------------------- | \n| id | | \n| reward_address | Address where validator’s rewards go to. | \n| owner_address | Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. It also enables the owner to edit the node by sending EditCandidate. | \n| control_address | Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. | \n| total_stake | Total stake of a candidate | \n| public_key | Public key of a candidate | \n| commission | Commission (from 0 to 100) from rewards which delegators will pay to validator | \n| used_slots | Number of occupied steak slots. Note: filled in when request includes_stakes | \n| uniq_users | Number of unique wallets in steaks. Note: filled in when request includes_stakes | \n| min_stake | Smallest steak size. Note: filled in when request includes_stakes | \n| stakes | List of stakes. Note: filled in when request includes_stakes | \n| status | Candidate status. Available values: offline = 1, online = 2 | \n| validator | Is a validator at the current height | \n| jailed_until | |", "operationId": "Candidate", "responses": { "200": { @@ -250,7 +336,7 @@ } ], "tags": [ - "ApiService" + "Validator" ] } }, @@ -315,13 +401,14 @@ "enum": [ "all", "off", - "on" + "on", + "validator" ], "default": "all" } ], "tags": [ - "ApiService" + "Validator" ] } }, @@ -369,7 +456,7 @@ } ], "tags": [ - "ApiService" + "Coin" ] } }, @@ -418,7 +505,55 @@ } ], "tags": [ - "ApiService" + "Coin" + ] + } + }, + "/commission_votes/{target_version}": { + "get": { + "summary": "CommissionVotes", + "operationId": "CommissionVotes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/CommissionVotesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "parameters": [ + { + "name": "target_version", + "in": "path", + "required": true, + "type": "string", + "format": "uint64" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + } + ], + "tags": [ + "Vote" ] } }, @@ -489,10 +624,46 @@ "required": false, "type": "integer", "format": "uint64" + }, + { + "name": "coin_id_commission", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + }, + { + "name": "coin_commission", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "swap_from", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "optimal", + "bancor", + "pool" + ], + "default": "optimal" + }, + { + "name": "route", + "in": "query", + "required": false, + "type": "array", + "items": { + "type": "string", + "format": "uint64" + }, + "collectionFormat": "multi" } ], "tags": [ - "ApiService" + "Coin" ] } }, @@ -563,10 +734,46 @@ "required": false, "type": "integer", "format": "uint64" + }, + { + "name": "coin_id_commission", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + }, + { + "name": "coin_commission", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "swap_from", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "optimal", + "bancor", + "pool" + ], + "default": "optimal" + }, + { + "name": "route", + "in": "query", + "required": false, + "type": "array", + "items": { + "type": "string", + "format": "uint64" + }, + "collectionFormat": "multi" } ], "tags": [ - "ApiService" + "Coin" ] } }, @@ -645,10 +852,33 @@ "required": false, "type": "integer", "format": "uint64" + }, + { + "name": "swap_from", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "optimal", + "bancor", + "pool" + ], + "default": "optimal" + }, + { + "name": "route", + "in": "query", + "required": false, + "type": "array", + "items": { + "type": "string", + "format": "uint64" + }, + "collectionFormat": "multi" } ], "tags": [ - "ApiService" + "Coin" ] } }, @@ -696,7 +926,7 @@ } ], "tags": [ - "ApiService" + "Price" ] } }, @@ -738,7 +968,7 @@ }, { "name": "search", - "description": "Array of public keys of validators and wallet addresses of validators for filtering.", + "description": "Array of public keys of validators and wallet addresses of delegators for filtering.", "in": "query", "required": false, "type": "array", @@ -749,7 +979,7 @@ } ], "tags": [ - "ApiService" + "Event" ] } }, @@ -794,10 +1024,17 @@ "required": false, "type": "integer", "format": "uint64" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" } ], "tags": [ - "ApiService" + "Balance" ] } }, @@ -830,7 +1067,7 @@ } }, "tags": [ - "ApiService" + "Blockchain" ] } }, @@ -872,7 +1109,7 @@ } ], "tags": [ - "ApiService" + "Vote" ] } }, @@ -914,7 +1151,7 @@ } ], "tags": [ - "ApiService" + "Price" ] } }, @@ -947,7 +1184,7 @@ } }, "tags": [ - "ApiService" + "Price" ] } }, @@ -995,7 +1232,7 @@ } ], "tags": [ - "ApiService" + "Validator" ] } }, @@ -1028,7 +1265,48 @@ } }, "tags": [ - "ApiService" + "Blockchain" + ] + } + }, + "/price_commissions": { + "get": { + "summary": "PriceCommission", + "operationId": "PriceCommission", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PriceCommissionResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "parameters": [ + { + "name": "height", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + } + ], + "tags": [ + "Price" ] } }, @@ -1071,7 +1349,7 @@ } ], "tags": [ - "ApiService" + "Blockchain" ], "externalDocs": { "description": "More about Minter transactions", @@ -1116,7 +1394,7 @@ } ], "tags": [ - "ApiService" + "Blockchain" ], "externalDocs": { "description": "More about Minter transactions", @@ -1153,7 +1431,7 @@ } }, "tags": [ - "ApiService" + "Blockchain" ] } }, @@ -1204,20 +1482,19 @@ } ], "tags": [ - "ApiService" + "WebSockets" ] } }, - "/test/block": { + "/swap_pool/{coin0}/{coin1}": { "get": { - "summary": "TestBlock", - "description": "TestBlock returns the list of example transactions in block. Available only testnet mode.", - "operationId": "TestBlock", + "summary": "SwapPool", + "operationId": "SwapPool", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/BlockResponse" + "$ref": "#/definitions/SwapPoolResponse" } }, "default": { @@ -1236,12 +1513,129 @@ } } }, + "parameters": [ + { + "name": "coin0", + "in": "path", + "required": true, + "type": "string", + "format": "uint64" + }, + { + "name": "coin1", + "in": "path", + "required": true, + "type": "string", + "format": "uint64" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + } + ], "tags": [ - "ApiService" + "Coin" ] } }, - "/transaction/{hash}": { + "/swap_pool/{coin0}/{coin1}/{provider}": { + "get": { + "summary": "SwapPoolProvider", + "operationId": "SwapPoolProvider", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SwapPoolResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "parameters": [ + { + "name": "coin0", + "in": "path", + "required": true, + "type": "string", + "format": "uint64" + }, + { + "name": "coin1", + "in": "path", + "required": true, + "type": "string", + "format": "uint64" + }, + { + "name": "provider", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + } + ], + "tags": [ + "Coin" + ] + } + }, + "/test/block": { + "get": { + "summary": "TestBlock", + "description": "TestBlock returns the list of example transactions in block. Available only testnet mode.", + "operationId": "TestBlock", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BlockResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "tags": [ + "Test" + ] + } + }, + "/transaction/{hash}": { "get": { "summary": "Transaction", "description": "Transaction returns transaction info.", @@ -1278,7 +1672,7 @@ } ], "tags": [ - "ApiService" + "Blockchain" ] } }, @@ -1335,7 +1729,7 @@ } ], "tags": [ - "ApiService" + "Blockchain" ] } }, @@ -1378,7 +1772,55 @@ } ], "tags": [ - "ApiService" + "Blockchain" + ] + } + }, + "/update_votes/{target_version}": { + "get": { + "summary": "UpdateVotes", + "operationId": "UpdateVotes", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/UpdateVotesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "parameters": [ + { + "name": "target_version", + "in": "path", + "required": true, + "type": "string", + "format": "uint64" + }, + { + "name": "height", + "in": "query", + "required": false, + "type": "integer", + "format": "uint64" + } + ], + "tags": [ + "Vote" ] } }, @@ -1420,7 +1862,39 @@ } ], "tags": [ - "ApiService" + "Validator" + ] + } + }, + "/version_network": { + "get": { + "summary": "VersionNetwork", + "operationId": "VersionNetwork", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/VersionNetworkResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorBody", + "example": { + "error": { + "code": "504", + "message": "context deadline exceeded", + "data": { + "operation": "ABC" + } + } + } + } + } + }, + "tags": [ + "Blockchain" ] } }, @@ -1474,7 +1948,7 @@ } ], "tags": [ - "ApiService" + "Balance" ] } } @@ -1597,71 +2071,176 @@ } } }, - "AppStateFrozenFund": { + "AppStateCommission": { "type": "object", "properties": { - "height": { + "coin": { "type": "string", "format": "uint64" }, - "address": { + "payload_byte": { "type": "string" }, - "candidate_key": { + "send": { "type": "string" }, - "candidate_id": { - "type": "string", - "format": "uint64" + "buy_bancor": { + "type": "string" }, - "coin": { - "type": "string", - "format": "uint64" + "sell_bancor": { + "type": "string" }, - "value": { + "sell_all_bancor": { + "type": "string" + }, + "buy_pool_base": { + "type": "string" + }, + "buy_pool_delta": { + "type": "string" + }, + "sell_pool_base": { + "type": "string" + }, + "sell_pool_delta": { + "type": "string" + }, + "sell_all_pool_base": { + "type": "string" + }, + "sell_all_pool_delta": { + "type": "string" + }, + "create_ticker3": { + "type": "string" + }, + "create_ticker4": { + "type": "string" + }, + "create_ticker5": { + "type": "string" + }, + "create_ticker6": { + "type": "string" + }, + "create_ticker7_10": { + "type": "string" + }, + "create_coin": { + "type": "string" + }, + "create_token": { + "type": "string" + }, + "recreate_coin": { + "type": "string" + }, + "recreate_token": { + "type": "string" + }, + "declare_candidacy": { + "type": "string" + }, + "delegate": { + "type": "string" + }, + "unbond": { + "type": "string" + }, + "redeem_check": { + "type": "string" + }, + "set_candidate_on": { + "type": "string" + }, + "set_candidate_off": { + "type": "string" + }, + "create_multisig": { + "type": "string" + }, + "multisend_base": { + "type": "string" + }, + "multisend_delta": { + "type": "string" + }, + "edit_candidate": { + "type": "string" + }, + "set_halt_block": { + "type": "string" + }, + "edit_ticker_owner": { + "type": "string" + }, + "edit_multisig": { + "type": "string" + }, + "edit_candidate_public_key": { + "type": "string" + }, + "create_swap_pool": { + "type": "string" + }, + "add_liquidity": { + "type": "string" + }, + "remove_liquidity": { + "type": "string" + }, + "edit_candidate_commission": { + "type": "string" + }, + "mint_token": { + "type": "string" + }, + "burn_token": { + "type": "string" + }, + "vote_commission": { + "type": "string" + }, + "vote_update": { "type": "string" } } }, - "AppStateHaltBlock": { + "AppStateCommissionVote": { "type": "object", "properties": { "height": { "type": "string", "format": "uint64" }, - "candidate_key": { - "type": "string" + "votes": { + "type": "array", + "items": { + "type": "string" + } + }, + "commission": { + "$ref": "#/definitions/AppStateCommission" } } }, - "AppStateValidators": { + "AppStateFrozenFund": { "type": "object", "properties": { - "total_bip_stake": { - "type": "string" + "height": { + "type": "string", + "format": "uint64" }, - "public_key": { + "address": { "type": "string" }, - "accum_reward": { + "candidate_key": { "type": "string" }, - "absent_times": { - "type": "string" - } - } - }, - "AppStateWaitlist": { - "type": "object", - "properties": { "candidate_id": { "type": "string", "format": "uint64" }, - "owner": { - "type": "string" - }, "coin": { "type": "string", "format": "uint64" @@ -1671,72 +2250,73 @@ } } }, - "BlockRequestField": { - "type": "string", - "enum": [ - "transactions", - "missed", - "block_reward", - "size", - "proposer", - "validators", - "evidence" - ], - "default": "transactions" - }, - "BlockResponseTransaction": { + "AppStateHaltBlock": { "type": "object", "properties": { - "hash": { - "type": "string" - }, - "raw_tx": { - "type": "string" - }, - "from": { - "type": "string" - }, - "nonce": { + "height": { "type": "string", "format": "uint64" }, - "gas_price": { + "candidate_key": { + "type": "string" + } + } + }, + "AppStatePool": { + "type": "object", + "properties": { + "coin0": { "type": "string", "format": "uint64" }, - "type": { + "coin1": { "type": "string", "format": "uint64" }, - "data": { - "$ref": "#/definitions/protobufAny" + "reserve0": { + "type": "string" }, - "payload": { - "type": "string", - "format": "byte" + "reserve1": { + "type": "string" }, - "service_data": { + "id": { "type": "string", - "format": "byte" + "format": "uint64" + } + } + }, + "AppStateValidators": { + "type": "object", + "properties": { + "total_bip_stake": { + "type": "string" }, - "gas": { + "public_key": { + "type": "string" + }, + "accum_reward": { + "type": "string" + }, + "absent_times": { + "type": "string" + } + } + }, + "AppStateWaitlist": { + "type": "object", + "properties": { + "candidate_id": { "type": "string", "format": "uint64" }, - "gas_coin": { - "$ref": "#/definitions/Coin" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "owner": { + "type": "string" }, - "code": { + "coin": { "type": "string", "format": "uint64" }, - "log": { + "value": { "type": "string" } } @@ -1746,7 +2326,8 @@ "enum": [ "all", "off", - "on" + "on", + "validator" ], "default": "all" }, @@ -1891,10 +2472,6 @@ "note": { "type": "string" }, - "start_height": { - "type": "string", - "format": "uint64" - }, "validators": { "type": "array", "items": { @@ -1919,6 +2496,12 @@ "$ref": "#/definitions/AppStateFrozenFund" } }, + "block_list_candidates": { + "type": "array", + "items": { + "type": "string" + } + }, "waitlist": { "type": "array", "items": { @@ -1937,6 +2520,21 @@ "$ref": "#/definitions/AppStateHaltBlock" } }, + "pools": { + "type": "array", + "items": { + "$ref": "#/definitions/AppStatePool" + } + }, + "commission": { + "$ref": "#/definitions/AppStateCommission" + }, + "commission_votes": { + "type": "array", + "items": { + "$ref": "#/definitions/AppStateCommissionVote" + } + }, "used_checks": { "type": "array", "items": { @@ -1984,6 +2582,12 @@ }, "owner_address": { "type": "string" + }, + "mintable": { + "type": "boolean" + }, + "burnable": { + "type": "boolean" } } }, @@ -2110,6 +2714,18 @@ } } }, + "VersionNetworkResponseVersion": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "height": { + "type": "string", + "format": "uint64" + } + } + }, "WaitListResponseWait": { "type": "object", "properties": { @@ -2228,6 +2844,19 @@ } } }, + "BlockField": { + "type": "string", + "enum": [ + "transactions", + "missed", + "block_reward", + "size", + "proposer", + "validators", + "evidence" + ], + "default": "transactions" + }, "BlockResponse": { "type": "object", "properties": { @@ -2248,7 +2877,7 @@ "transactions": { "type": "array", "items": { - "$ref": "#/definitions/BlockResponseTransaction" + "$ref": "#/definitions/TransactionResponse" } }, "block_reward": { @@ -2300,9 +2929,24 @@ } } }, + "BlocksResponse": { + "type": "object", + "properties": { + "blocks": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockResponse" + } + } + } + }, "CandidateResponse": { "type": "object", "properties": { + "id": { + "type": "string", + "format": "uint64" + }, "reward_address": { "type": "string", "description": "Address where validator’s rewards go to." @@ -2357,6 +3001,10 @@ "validator": { "type": "boolean", "title": "Is a validator at the current height" + }, + "jailed_until": { + "type": "string", + "format": "uint64" } } }, @@ -2442,6 +3090,37 @@ }, "owner_address": { "type": "string" + }, + "mintable": { + "type": "boolean" + }, + "burnable": { + "type": "boolean" + } + } + }, + "CommissionVotesResponse": { + "type": "object", + "properties": { + "votes": { + "type": "array", + "items": { + "$ref": "#/definitions/CommissionVotesResponseVote" + } + } + } + }, + "CommissionVotesResponseVote": { + "type": "object", + "properties": { + "price": { + "$ref": "#/definitions/PriceCommissionResponse" + }, + "public_keys": { + "type": "array", + "items": { + "type": "string" + } } } }, @@ -2461,6 +3140,9 @@ }, "commission": { "type": "string" + }, + "swap_from": { + "$ref": "#/definitions/SwapFrom" } } }, @@ -2469,6 +3151,9 @@ "properties": { "will_get": { "type": "string" + }, + "swap_from": { + "$ref": "#/definitions/SwapFrom" } } }, @@ -2480,6 +3165,9 @@ }, "commission": { "type": "string" + }, + "swap_from": { + "$ref": "#/definitions/SwapFrom" } } }, @@ -2522,6 +3210,10 @@ "chain_id": { "type": "string" }, + "initial_height": { + "type": "string", + "format": "uint64" + }, "consensus_params": { "$ref": "#/definitions/GenesisResponseConsensusParams" }, @@ -2627,6 +3319,140 @@ } } }, + "PriceCommissionResponse": { + "type": "object", + "properties": { + "coin": { + "$ref": "#/definitions/Coin" + }, + "payload_byte": { + "type": "string" + }, + "send": { + "type": "string" + }, + "buy_bancor": { + "type": "string" + }, + "sell_bancor": { + "type": "string" + }, + "sell_all_bancor": { + "type": "string" + }, + "buy_pool_base": { + "type": "string" + }, + "buy_pool_delta": { + "type": "string" + }, + "sell_pool_base": { + "type": "string" + }, + "sell_pool_delta": { + "type": "string" + }, + "sell_all_pool_base": { + "type": "string" + }, + "sell_all_pool_delta": { + "type": "string" + }, + "create_ticker3": { + "type": "string" + }, + "create_ticker4": { + "type": "string" + }, + "create_ticker5": { + "type": "string" + }, + "create_ticker6": { + "type": "string" + }, + "create_ticker7_10": { + "type": "string" + }, + "create_coin": { + "type": "string" + }, + "create_token": { + "type": "string" + }, + "recreate_coin": { + "type": "string" + }, + "recreate_token": { + "type": "string" + }, + "declare_candidacy": { + "type": "string" + }, + "delegate": { + "type": "string" + }, + "unbond": { + "type": "string" + }, + "redeem_check": { + "type": "string" + }, + "set_candidate_on": { + "type": "string" + }, + "set_candidate_off": { + "type": "string" + }, + "create_multisig": { + "type": "string" + }, + "multisend_base": { + "type": "string" + }, + "multisend_delta": { + "type": "string" + }, + "edit_candidate": { + "type": "string" + }, + "set_halt_block": { + "type": "string" + }, + "edit_ticker_owner": { + "type": "string" + }, + "edit_multisig": { + "type": "string" + }, + "edit_candidate_public_key": { + "type": "string" + }, + "create_swap_pool": { + "type": "string" + }, + "add_liquidity": { + "type": "string" + }, + "remove_liquidity": { + "type": "string" + }, + "edit_candidate_commission": { + "type": "string" + }, + "mint_token": { + "type": "string" + }, + "burn_token": { + "type": "string" + }, + "vote_commission": { + "type": "string" + }, + "vote_update": { + "type": "string" + } + } + }, "SendTransactionRequest": { "type": "object", "properties": { @@ -2664,6 +3490,10 @@ "network": { "type": "string" }, + "initial_height": { + "type": "string", + "format": "uint64" + }, "latest_block_hash": { "type": "string" }, @@ -2692,6 +3522,9 @@ }, "node_id": { "type": "string" + }, + "moniker": { + "type": "string" } } }, @@ -2712,6 +3545,29 @@ } } }, + "SwapFrom": { + "type": "string", + "enum": [ + "optimal", + "bancor", + "pool" + ], + "default": "optimal" + }, + "SwapPoolResponse": { + "type": "object", + "properties": { + "amount0": { + "type": "string" + }, + "amount1": { + "type": "string" + }, + "liquidity": { + "type": "string" + } + } + }, "TransactionResponse": { "type": "object", "properties": { @@ -2747,6 +3603,9 @@ "gas_coin": { "$ref": "#/definitions/Coin" }, + "type_hex": { + "type": "string" + }, "type": { "type": "string", "format": "uint64" @@ -2758,6 +3617,10 @@ "type": "string", "format": "byte" }, + "service_data": { + "type": "string", + "format": "byte" + }, "tags": { "type": "object", "additionalProperties": { @@ -2807,6 +3670,31 @@ } } }, + "UpdateVotesResponse": { + "type": "object", + "properties": { + "votes": { + "type": "array", + "items": { + "$ref": "#/definitions/UpdateVotesResponseVote" + } + } + } + }, + "UpdateVotesResponseVote": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "public_keys": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "ValidatorsResponse": { "type": "object", "properties": { @@ -2830,6 +3718,20 @@ } } }, + "VersionNetworkResponse": { + "type": "object", + "properties": { + "current": { + "type": "string" + }, + "versions": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionNetworkResponseVersion" + } + } + } + }, "WaitListResponse": { "type": "object", "properties": { diff --git a/go.mod b/go.mod index 987af1c..0bb9223 100644 --- a/go.mod +++ b/go.mod @@ -4,10 +4,10 @@ go 1.15 require ( github.com/golang/protobuf v1.4.3 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.0.1 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.1.0 github.com/rakyll/statik v0.1.7 - google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154 - google.golang.org/grpc v1.33.1 + google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92 + google.golang.org/grpc v1.34.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0 google.golang.org/protobuf v1.25.0 ) diff --git a/go.sum b/go.sum index 30fc660..c34f829 100644 --- a/go.sum +++ b/go.sum @@ -40,10 +40,12 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -88,8 +90,8 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -103,8 +105,8 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.0.1 h1:X2vfSnm1WC8HEo0MBHZg2TcuDUHJj6kd1TmEAQncnSA= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.0.1/go.mod h1:oVMjMN64nzEcepv1kdZKgx1qNYt4Ro0Gqefiq2JWdis= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.1.0 h1:EhTvIsn53GrBLl45YVHk25cUHQHwlJfq2y8b7W5IpVY= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.1.0/go.mod h1:ly5QWKtiqC7tGfzgXYtpoZYmEWx5Z82/b18ASEL+yGc= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -124,6 +126,7 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -199,7 +202,7 @@ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -342,8 +345,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154 h1:bFFRpT+e8JJVY7lMMfvezL1ZIwqiwmPl2bsE2yx4HqM= -google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92 h1:jOTk2Z6KYaWoptUFqZ167cS8peoUPjFEXrsqfVkkCGc= +google.golang.org/genproto v0.0.0-20210106152847-07624b53cd92/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -356,8 +359,8 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1 h1:DGeFlSan2f+WEtCERJ4J9GJWk15TxUi8QGagfI87Xyc= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.34.0 h1:raiipEjMOIC/TO2AvyTxP25XFdLxNIBwzDh3FM3XztI= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0 h1:lQ+dE99pFsb8osbJB3oRfE5eW4Hx6a/lZQr8Jh+eoT4= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/resources.proto b/resources.proto index a08ac34..7ce56cd 100644 --- a/resources.proto +++ b/resources.proto @@ -17,6 +17,152 @@ message Coin { string symbol = 2; } + +message BlocksRequest { + uint64 from_height = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + required: 'from_height' + type: INTEGER + }]; + uint64 to_height = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + required: 'to_height' + type: INTEGER + }]; + repeated BlockField fields = 3; + bool failed_txs = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + default: "false" + }]; +} +message BlocksResponse { + repeated BlockResponse blocks = 1; +} + +message CommissionVotesRequest { + uint64 target_version = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + uint64 height = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; +} + +message CommissionVotesResponse { + message Vote { + PriceCommissionResponse price = 2; + repeated string public_keys = 1; + } + repeated Vote votes = 1; +} + +message UpdateVotesRequest { + uint64 target_version = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + uint64 height = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + +} + +message UpdateVotesResponse { + message Vote { + string version = 2; + repeated string public_keys = 1; + } + repeated Vote votes = 1; +} + +message VersionNetworkRequest { +} + +message VersionNetworkResponse { + string current = 1; + message Version { + string name = 1; + uint64 height = 2; + } + repeated Version versions = 3; +} + +message PriceCommissionRequest { + uint64 height = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; +} +message PriceCommissionResponse { + Coin coin = 3; + string payload_byte = 4; + string send = 5; + string buy_bancor = 38; + string sell_bancor = 39; + string sell_all_bancor = 40; + string buy_pool_base = 41; + string buy_pool_delta = 53; + string sell_pool_base = 42; + string sell_pool_delta = 54; + string sell_all_pool_base = 43; + string sell_all_pool_delta = 55; + string create_ticker3 = 7; + string create_ticker4 = 8; + string create_ticker5 = 9; + string create_ticker6 = 10; + string create_ticker7_10 = 11; + string create_coin = 34; + string create_token = 35; + string recreate_coin = 36; + string recreate_token = 37; + string declare_candidacy = 13; + string delegate = 14; + string unbond = 15; + string redeem_check = 16; + string set_candidate_on = 44; + string set_candidate_off = 45; + string create_multisig = 18; + string multisend_base = 51; + string multisend_delta = 52; + string edit_candidate = 20; + string set_halt_block = 21; + string edit_ticker_owner = 22; + string edit_multisig = 23; + string edit_candidate_public_key = 25; + string create_swap_pool = 48; + string add_liquidity = 49; + string remove_liquidity = 50; + string edit_candidate_commission = 28; + string mint_token = 46; + string burn_token = 47; + string vote_commission = 31; + string vote_update = 32; +} + +message SwapPoolRequest { + uint64 coin0 = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + uint64 coin1 = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + uint64 height = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; +} +message SwapPoolResponse { + string amount0 = 1; + string amount1 = 2; + string liquidity = 3; +} +message SwapPoolProviderRequest { + uint64 coin0 = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + uint64 coin1 = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + string provider = 3; + uint64 height = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; +} + message NodeInfo { message ProtocolVersion { uint64 p2p = 3; @@ -84,6 +230,7 @@ message NetInfoResponse { message StatusResponse { string version = 8; string network = 11; + uint64 initial_height = 12; string latest_block_hash = 1; string latest_app_hash = 2; uint64 latest_block_height = 3; @@ -93,10 +240,12 @@ message StatusResponse { bool catching_up = 6; string public_key = 7; string node_id = 9; + string moniker = 13; } message GenesisResponse { string genesis_time = 1; string chain_id = 2; + uint64 initial_height = 6; message ConsensusParams { message Block { int64 max_bytes = 1; @@ -118,8 +267,6 @@ message GenesisResponse { string app_hash = 4; message AppState { string note = 10; - uint64 start_height = 1; - message Validators { string total_bip_stake = 4; string public_key = 1; @@ -160,6 +307,8 @@ message GenesisResponse { string max_supply = 6; uint64 version = 7; google.protobuf.StringValue owner_address = 8; + bool mintable = 10; + bool burnable = 11; } repeated Coin coins = 5; @@ -173,6 +322,8 @@ message GenesisResponse { } repeated FrozenFund frozen_funds = 6; + repeated string block_list_candidates = 18; + message Waitlist { uint64 candidate_id = 1; string owner = 2; @@ -204,6 +355,69 @@ message GenesisResponse { } repeated HaltBlock halt_blocks = 12; + message Pool { + uint64 coin0 = 1; + uint64 coin1 = 2; + string reserve0 = 3; + string reserve1 = 4; + uint64 id = 5; + } + repeated Pool pools = 15; + + message Commission { + uint64 coin = 3; + string payload_byte = 4; + string send = 5; + string buy_bancor = 38; + string sell_bancor = 39; + string sell_all_bancor = 40; + string buy_pool_base = 41; + string buy_pool_delta = 53; + string sell_pool_base = 42; + string sell_pool_delta = 54; + string sell_all_pool_base = 43; + string sell_all_pool_delta = 55; + string create_ticker3 = 7; + string create_ticker4 = 8; + string create_ticker5 = 9; + string create_ticker6 = 10; + string create_ticker7_10 = 11; + string create_coin = 34; + string create_token = 35; + string recreate_coin = 36; + string recreate_token = 37; + string declare_candidacy = 13; + string delegate = 14; + string unbond = 15; + string redeem_check = 16; + string set_candidate_on = 44; + string set_candidate_off = 45; + string create_multisig = 18; + string multisend_base = 51; + string multisend_delta = 52; + string edit_candidate = 20; + string set_halt_block = 21; + string edit_ticker_owner = 22; + string edit_multisig = 23; + string edit_candidate_public_key = 25; + string create_swap_pool = 48; + string add_liquidity = 49; + string remove_liquidity = 50; + string edit_candidate_commission = 28; + string mint_token = 46; + string burn_token = 47; + string vote_commission = 31; + string vote_update = 32; + } + Commission commission = 16; + + message CommissionVote { + uint64 height = 1; + repeated string votes = 2; + Commission commission = 3; + } + repeated CommissionVote commission_votes = 17; + repeated string used_checks = 11; uint64 max_gas = 7; string total_slashed = 8; @@ -215,20 +429,23 @@ message MinGasPriceResponse { uint64 min_gas_price = 3; } +enum BlockField { + transactions = 0; + missed = 1; + block_reward = 2; + size = 3; + proposer = 4; + validators = 5; + evidence = 6; +} message BlockRequest { uint64 height = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { type: INTEGER }]; - enum Field { - transactions = 0; - missed = 1; - block_reward = 2; - size = 3; - proposer = 4; - validators = 5; - evidence = 6; - } - repeated Field fields = 2; + repeated BlockField fields = 2; + bool failed_txs = 3 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + default: "false" + }]; } message BlockResponse { string hash = 1; @@ -236,24 +453,7 @@ message BlockResponse { string time = 3; uint64 transaction_count = 4; - message Transaction { - string hash = 1; - string raw_tx = 2; - string from = 3; - uint64 nonce = 4; - uint64 gas_price = 5; - uint64 type = 6; - google.protobuf.Any data = 7; - bytes payload = 8; - bytes service_data = 9; - uint64 gas = 10; - Coin gas_coin = 11; - map tags = 12; - uint64 code = 13; - string log = 14; - } - - repeated Transaction transactions = 6; + repeated TransactionResponse transactions = 6; string block_reward = 7; uint64 size = 8; string proposer = 9; @@ -343,6 +543,7 @@ message CandidateRequest { }]; } message CandidateResponse { + uint64 id = 14; // Address where validator’s rewards go to. string reward_address = 1; // Address that allows one to start the candidate by sending the SetCandidateOnline transaction or stop it by sending the SetCandidateOffline transaction. It also enables the owner to edit the node by sending EditCandidate. @@ -373,6 +574,7 @@ message CandidateResponse { uint64 status = 6; // Is a validator at the current height bool validator = 12; + uint64 jailed_until = 13; } message CandidatesRequest { @@ -392,6 +594,7 @@ message CandidatesRequest { all = 0; off = 1; on = 2; + validator = 3; } CandidateStatus status = 3; } @@ -426,6 +629,8 @@ message CoinInfoResponse { string reserve_balance = 5; string max_supply = 8; google.protobuf.StringValue owner_address = 7; + bool mintable = 9; + bool burnable = 10; } message SendTransactionResponse { @@ -450,9 +655,11 @@ message TransactionResponse { uint64 gas = 7; uint64 gas_price = 8; Coin gas_coin = 9; + string type_hex = 17; uint64 type = 10; google.protobuf.Any data = 11; bytes payload = 12; + bytes service_data = 16; map tags = 13; uint64 code = 14; string log = 15; @@ -477,6 +684,13 @@ message TransactionsRequest { }]; } + +enum SwapFrom { + optimal = 0; + bancor = 1; + pool = 2; +} + message EstimateCoinBuyRequest { oneof buy { uint64 coin_id_to_buy = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { @@ -496,10 +710,19 @@ message EstimateCoinBuyRequest { uint64 height = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { type: INTEGER }]; + oneof commission { + uint64 coin_id_commission = 9 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + string coin_commission = 10; + } + SwapFrom swap_from = 8; + repeated uint64 route = 11; } message EstimateCoinBuyResponse { string will_pay = 1; string commission = 2; + SwapFrom swap_from = 3; } message EstimateCoinSellRequest { @@ -521,13 +744,21 @@ message EstimateCoinSellRequest { uint64 height = 4 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { type: INTEGER }]; + oneof commission { + uint64 coin_id_commission = 9 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; + string coin_commission = 10; + } + SwapFrom swap_from = 8; + repeated uint64 route = 11; } message EstimateCoinSellResponse { string will_get = 1; string commission = 2; + SwapFrom swap_from = 3; } - message EstimateCoinSellAllRequest { oneof buy { uint64 coin_id_to_buy = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { @@ -551,14 +782,14 @@ message EstimateCoinSellAllRequest { uint64 height = 5 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { type: INTEGER }]; + SwapFrom swap_from = 8; + repeated uint64 route = 11; } message EstimateCoinSellAllResponse { string will_get = 1; + SwapFrom swap_from = 2; } -message EstimateTxCommissionResponse { - string commission = 1; -} message EstimateTxCommissionRequest { string tx = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { required: 'tx' @@ -567,12 +798,15 @@ message EstimateTxCommissionRequest { type: INTEGER }]; } +message EstimateTxCommissionResponse { + string commission = 1; +} message EventsRequest { uint64 height = 1 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { type: INTEGER }]; - // Array of public keys of validators and wallet addresses of validators for filtering + // Array of public keys of validators and wallet addresses of delegators for filtering repeated string search = 2; } message EventsResponse { @@ -645,6 +879,9 @@ message FrozenRequest { google.protobuf.UInt64Value coin_id = 2 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { type: INTEGER }]; + uint64 height = 3 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + type: INTEGER + }]; } message FrozenResponse { message Frozen { @@ -783,11 +1020,134 @@ message EditMultisigData { repeated string addresses = 3; } -message PriceVoteData { - string price = 1; -} - message EditCandidatePublicKeyData { string pub_key = 1; string new_pub_key = 2; -} \ No newline at end of file +} + +message CreateSwapPoolData { + Coin coin0 = 1; + Coin coin1 = 2; + string volume0 = 3; + string volume1 = 4; +} + +message AddLiquidityData { + Coin coin0 = 1; + Coin coin1 = 2; + string volume0 = 3; + string maximum_volume1 = 4; +} + +message RemoveLiquidityData { + Coin coin0 = 1; + Coin coin1 = 2; + string liquidity = 3; + string minimum_volume0 = 4; + string minimum_volume1 = 5; +} + +message SellSwapPoolData { + repeated Coin coins = 1; + string value_to_sell = 2; + string minimum_value_to_buy = 4; +} + +message SellAllSwapPoolData { + repeated Coin coins = 1; + string minimum_value_to_buy = 3; +} + +message BuySwapPoolData { + repeated Coin coins = 1; + string value_to_buy = 2; + string maximum_value_to_sell = 4; +} + +message EditCandidateCommission { + string pub_key = 1; + uint64 commission = 2; +} + +message MintTokenData { + Coin coin = 1; + string value = 2; +} + +message BurnTokenData { + Coin coin = 1; + string value = 2; +} + +message CreateTokenData { + string name = 1; + string symbol = 2; + string initial_amount = 3; + string max_supply = 4; + bool mintable = 5; + bool burnable = 6; +} + +message RecreateTokenData { + string name = 1; + string symbol = 2; + string initial_amount = 3; + string max_supply = 4; + bool mintable = 5; + bool burnable = 6; +} + +message VoteCommissionData { + string pub_key = 1; + uint64 height = 2; + Coin coin = 3; + string payload_byte = 4; + string send = 5; + string buy_bancor = 38; + string sell_bancor = 39; + string sell_all_bancor = 40; + string buy_pool_base = 41; + string buy_pool_delta = 53; + string sell_pool_base = 42; + string sell_pool_delta = 54; + string sell_all_pool_base = 43; + string sell_all_pool_delta = 55; + string create_ticker3 = 7; + string create_ticker4 = 8; + string create_ticker5 = 9; + string create_ticker6 = 10; + string create_ticker7_10 = 11; + string create_coin = 34; + string create_token = 35; + string recreate_coin = 36; + string recreate_token = 37; + string declare_candidacy = 13; + string delegate = 14; + string unbond = 15; + string redeem_check = 16; + string set_candidate_on = 44; + string set_candidate_off = 45; + string create_multisig = 18; + string multisend_base = 51; + string multisend_delta = 52; + string edit_candidate = 20; + string set_halt_block = 21; + string edit_ticker_owner = 22; + string edit_multisig = 23; + string edit_candidate_public_key = 25; + string create_swap_pool = 48; + string add_liquidity = 49; + string remove_liquidity = 50; + string edit_candidate_commission = 28; + string mint_token = 46; + string burn_token = 47; + string vote_commission = 31; + string vote_update = 32; +} + +message VoteUpdateData { + string pub_key = 1; + uint64 height = 2; + string version = 3; +} + diff --git a/statik/statik.go b/statik/statik.go index 104bd9f..eb3b538 100644 --- a/statik/statik.go +++ b/statik/statik.go @@ -8,7 +8,7 @@ import ( func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00 \x00api.swagger.jsonUT\x05\x00\x01\x80Cm8\xec}os\xdb\xb6\xb2\xf7{\x7f\x8a}t\x9e\x99&\xcfue'i{N}&3\xd7\xcd\x9f\xd6w\x12\xd7\x13;=/\xaa\x8c\x02\x91K \xd7$\xc0\x12\xa0e5\xc9\xcc\xfd\x1a\xf7\xeb\x9dO\xf2\x0c\xfe\xf0\xafH\x8a\"\xa9Vi\xa47\x96\x05`\xb1X\xec\xfev\x01\x02\xcb\x0fG\x00#\xb1$\xf39F\xa33\x18=\x1e\x9f\x8e\x8e\xd5o\x94y|t\x06\xaa\x1c`$\xa9\xf4Q\x95\xbf\xa6Lb\x04\x97\xdcE8\xbf\xba\x80\xbb\xc7\xba:\xc0\xe8\x0e#A9S\x95\x1e\x8d\x1f\x8f\x1f%\xbf;\x9cI\xe2\xc8\x94\x16\xc0\x88\x91 Ol\xfe\xe6\xea\xd9\xd7?\x12\x89K\xb2\xb2\xad\x00Fq\xe4\xab:\x0b)Cqvr2\xa7r\x11\xcf\xc6\x0e\x0fNL\xb3\x1b$\xc1 \xe3.~=\x8fB\xe7\xeby\xb9=\x06\x84j\n\xe2\xf6?\x03\xddb\xcc\xa3\xf9H\x17\x7f\xb2\xbc\xf9\xd4A&\xb0\x92\xb7\x8b\x9b-y1\x9d|=\xe7_+\xaeNf>\x9f\x9d\x04DH\x8cN^]<{qy\xfd\xc2v~d\x19\x18\xcd\x88\xc0+\"\x17\x8a\xf6\x89\x95\xa4\x92\x97\x88\x03\x14\xa33\xf8\xd5pI\xc2\xd0\xa7\x0e\x91\x94\xb3\x93\xff\x16\x9c)2\xeft\xdd0\xe2n\xec\xb4\xacK\xe4Bd3zB\\7B!N>\xd8/\x9f\xf2R\x98c~\xc2\x94\x8a\xc4A@\xa2\x95\xe2\xf4\xdc\xd4O\xa5\x030rQ8\x11\x0d\xa5\x9d\x7f[\x03\"\x94q\xc4\x048\x9c2\x01>\x15\xf2\x18f\xc4'\xccA \xcc\x05\x19\x11&\x88\xa3\x9a\x81\xc3c&\x81{@\x18X\x8e\xc6\xf9.x\x88\x91\x1e\xd6\x85[\xc3D\x84\"\xe4L\xa0(p\x0e0z|zZ\xfa\xa9\x82e\x10\xb1\xe3\xa0\x10^\xecCB)\xcf\x80n$\x9c\x05\x06d\x8d\x18\xc0\xe8\xffF\xe8):\x7f;q\xd1\xa3\x8c*\xba\xe2\xc4r\xf9\xc6\xd2\x1b\x15Z}\xca\xfd\xf7)\xdf\xd1\xc8E\x8f\xc4\xbe\xdc\xcc4\x83\x98\xe1}\x88\x8eD\x170\x8ax4\x1c\xef/\x14\xb9\x1f\xb8\xbb*\x11R\xa6uO\x82\xd0\xc7\nZ\xaaP\xb5\xab,\xd2\xca\xedj\xeb\xfa\xf6\xf4\x9b5\xb2\xbaB\x80B\x90\xb9\xae\xa3\x80\x03\xef%\xb8H\\\x9f2\x04\xbcw\x10]t\xab[\xbaDV\x8d\xce\x96\xa6\xea\xa3\xe5\xf6\xc3\xb3QE\xb5Ok\xbf\x95\x7f\xf9T?\x81\xe9\xf7\xdcT\x8eB\x12\x91\x00%F\x99\x85\x9aOi^\x13\xd0!kZ\xad\x8b\xa9\xe6Z\x19p\xb9$\xc2\xdfb\x1a\xa12 \x19\xc5X*\x95\xabP\x93\x152\xa2l>\xaa\xd3\xb7\x1af\x16H\xe7\x0bY\xcd\xcbo1Fe\xc5\xc83\xe3\x11_\xd4q\xa3`Ry\x9bR\xb1\xc7\xa3\x80(\x9d\x1f\xc5\x94\xc9\xef\xbe\xd9\x96]\x17}TN\xa0\xac\x1e\x03p<\xe3\xdcG\xc2\xca\xad33\x1d\xe9\xd6\xa3J}x\x97\xd3\x07I\xe6eM\x18\x9d\x87\xf4\x1a\xa3;\xea\xe4\xda\xbf;\xcaSI\xbcU\x02\xd9\x05\x84k\x03\xd5\xd8\x02\xac1\x83k\x05\xd4\x1a\x89\x93\x92\x16@\x8c\x9f \x14\xe3\x01\x8c\xd3\xc2\x03\x18\x9bO3\x18c\x0d\x1co\x02\x94\x06<&QD\xd6\x9aR\x89A\xd9^\n\xad\xd6Q\xbc\xa4\xaazJ}\x1fu@\xf52\x85\xd3 \xf6%\xdd\x16M\x0f\xe0\xbfo\xe0?\xf3\xb9s{\xf2\xc1LL\xeb`\xfd\x07\xd5\xaa\x01\xfduy\x8a\xfc\xba\x0fP\xc6\x0bD\xc2\x9c\xde!\x03\xd3a\x93\x0bX\xebc\x0f\xe1_\xf3x\x80\xfe\xa4\xf0\x00\xfd\xe6\xd3\x01\xfdz\x87\xe1\x03C\x9fG\xd1w;\xfa\xa8&\xdc\xeb\xe5\xa4\xd6U\x95\xc5AI\xf6I\xcbl\x13\xa0<\n]\x1eP!*um\xa4\xd1j\x1a\xe1\x92D\x95\xe5\x82\xfe\x8eU\xbf\x87\x11\x0f\xb9XsB\xba\xec\x8e\xf8\xd4%\x92G\x95\xbc\xe0\x1du\x919X\xd6\xdawE}, \xad\x9dSN\xbf\x0f\xe83\x1c\xc2\\5\x1c<\xf9\x10\xc63\x9f:\xd3[\\\xb5\xf6\x1d\xcf\x92\xd6\x0d\xfe#\xad\x93m\xf6$\xbf\xfc\xfb\x7f\xfeW\x00e\x1e\x87\xd9\n\xc2\x88+\xd9\xb9`\xf8\x80[\\\x8d'l\xc2\xfe\xf67x\xa9\x15X-8\x12\xcc\x9c\xb0\x8fpI\x024]~\x84\xe7Y\x9f\xb0\xf6\xf9\xa8j\x7f\x9d| \xf7\xbd\xe2\x03\x1fAU7:3\xb5\x11\x1e|\x84d\xc7j\xb9\xc0\x08!U\x02=\x04SY\xc0\x9c\x83\xe4cK\x81/\x19F\x15\x04\xe4\x82H \xbe\xcf\x97\x028C\x90\x1c\x84$\x91\x04\xb9\xc0L4J\"\x02\x99K\xd9\\\x17\\\xa3L\x05\xf93\xd3 \x9b\xdf\x1b\xe3\x11\x08\xc9C\xa0\xb2\xb1\xa1\xe7\x95[\x8e\xe1Bq#8 #3\x1f\x85n\xa4yW\x9c\xa1K\x0dc\x8c\xbb\x05\x9e^\xb84\xa3\x9b\x0cY\xf9\x81\x88\xfb\x9f\xc1\xa0\x0d\xbf\x92K\xe2O\x85$\xb7\x08\x1f\xe1F\xfd\x07\xe6?\xb5\xb6\xcd\xf1e\xaag\x06\x02\x1f\xe1*\xd5\xd2\xea\xca\x0e\x0f\x14.)>?\xc2\xb3\xec\x9f\x07^\xc4\x038U\x12xtz\xfa\x10\xf4\xbf\x89\x02-\x17\xd4Y\x80\x0dUy$`I}\x1fB\xb2R\xd5S\x9d\xb3=\xc4\x02\xdd\xa9\xf0\xb9T\x82\xbe\x8c\x83\x19F\x8a\x15\xee8qH\xd1\x05!\x91\xdc\x82\xae0\x86K.\xf1\x0c<\xea\xfb\xe8\x02eJ\x8d\x19(\x9cG!\x812\xc7\x8f]\x14F\x14\"\xa1\xcf\xe8o\xd3X`T\xa4\xaf~\x8e\x11\x96\xc4\xf7Q*\xf35\x1du\xeb#\xa0,\x95\xffu\xa0H\n\x990N\x7f\xc7N4\xd3\x7f^\xd9]\n\xf3CWZ2V\xffd(f~\x1a\xc3\xf9\x1d\xa1\xbe2\x19511\x8a3\xe0V\xd3\x9e\xc2\xa3c\xe0\xcc~\x7flI\xe5\xa7\xefB\x00\xc9\xfd@\xac\x1d\xc4Q\x84L\xdax\x1a>6\x04\xd4\x95\xc0\xbb\x87Au\xca\xe7!\xb0N\n\x0f\x81\xb5\xf9\xd4\x04\xab\x19\xc8\xae\xaf\xa7\x0b3_\x0b\xc0;\n\xca\xebTu\xab\x05B\xd5\xda\xdaY\x10\x0d\xa2\n\\\xac\xe9{<* \x82\x05\xa91\xfc\xac\x9b\x12\xffX\x17\xfbD(\xdd\xd0\x96b p/s\xd7Th\x1f\xb1f\x06\xfd#\xff\x1d\xed\xd10.\xa7b\xc1\x97\x16\x837\x08\xef9\x07\xc6%\xb8T\x84>Y\x01Iw\xa5\x8b\xfe(s\x93\xc79\x97v\x9cs=\xda\xc9\xce\xd0z\x86\x1d\x88k_6\x88R\x13i\xfdx\xe0Y\xd6\xa2E\x84\xbf\xfe\x80 \xeb\xb1i{\xa8\xba\x97}vg\x87g\x04i\xe1\xc1\x9f\x99\xcf\xc1\x0f\xa4\xc5}\xfd\x80\x8d\xc5\xdb\xb9\x81g\xc4wb_\x8dY\xefs\xd9h|3\xec\xef@\x1c]p\xbe\x858z\xb9E\xad\x1f\x85\x85\x90\xd1\x99\xa2\x8c\xc1\xf3\xc9\\)\x8a\xde\nH\x86\xabV\x9d\x96\xce\x96\xdeT\xc8\x82O\x05\xea\xd5u\xb8#\xcd\xdc\xd1T\x98\xc5\xdf\xf0\xecVo\xfc\xd6l\x89\x8e\x88\xef\xaf#8\xf7\xbc\x8a\x1fY\x11\x15\xdf\xd5\xcbC\x11\xcdK\xe3\xa8\xa2M\xef\x00\x84S6\xa5\xcc\xe3'\x1f\xc4*\x98q\xbf\xfdN#\xa7\xec\x82y\xbc)\x0c\xb1U\xd2 Du\xa4\x80\x88r\x06d\xc6c\xa9\x8f\x99\x81\xe9\xb91\x1e\xa9\xe8l\x1f\xa3\x11\xcb\xe6!\x16I\n\x0f\xb1\x88\xf9\xd4\xa1\x97\xd6\xfcj\xf4\xda\x8f\xf5q\x7f$\xed\x12\x92\xa4\xdfw\x01u\xd3\xd9jJ\xdd\x93\x0f\xd4\xdd\x1a\xec~X]\xb8-\x00OU\xdb\x04z\x17\xcf\xdb\x00^\xb9\xc3\x03\xe8\x1d@\xefs\x07=Zs\xe2\xa77\xe0m\x830\x07@5\xe0c\xa2\x15w*\xb9\xb6\xcc\xbd\x00\xa1\x16\x98\xa9\xd9\xde\x15\xcf\xdd\xe2\xda\x9c$\x05\xae\xad\xd3\x07`k\xc7\xa2\xdc\x0d\xd3\xddd\xa9\xb7\xf2z\xcd\xeff/\xbe%K_\x96\x97\xd6\xca\xd0\xc1M_\x17\x95\xa8\xc9O\xab\xaa\x95\x8eZ\xf5\xdd\xd9S\x97\x19\xd8sW\xad\xd8=\xf8\xea\xa4\xf0\xe0\xab\xcdg\xb3\x87\xe9\x8c\x8bCCQ\x0b\xe4<\xf8\xea\xb4x(Q\xee\x86\xe9n\xb2L}uw\xa6\x0e\xce\x1a\xfa:\xeb)\xe9\xee\xb0\xcf\xb7\xf2\xd9\xe7Mn\x9b\xf4t\xdd\xe7\x9f\x9d\xf7>?8\xf0\xac\xf0\xe0\xc0\xcdg\xb3\xdb\xd9\x893\xec\x02O-\xd0\xf4\xe0\xc0\xd3\xe2\xa1D\xb9\x1b\xa6\xbb\xc9r\x1f\x1d\xf8\x9c\x88i\x18)W\xd8\x89\x9f!f\xb6T\x9e;0\xf1h\xdb\xd1|1\xe1\x88\xbc\x9ff\xd7_N>\xc8\xfb\xd6O>\x13\xb7zs\x9f]\x99i\x11\x94\xe4\xabWF%[\xc6!u\xdd\xefq \x92g\xf9\x10\x89$\x85\x87H\xc4|j\x10I\xdeW\xa3Q\xefg\xa3u\xaa\xf6\xa5\"\xe3\x1d2)\xb6N\xcd\xf0B7k\xc2?]!C<\xf3\xef\x16\x89\x19\xd6{\xd8G\x88\xd3L\x1e@-)<\x80\x9a\xf9t\x00\x93\xde\xc0\xb6\x0d\x92\xb4\x00>\x81$r\xd68*kh\x14\x11}\xc9-\xbb\x19\xaf/\xc3g\x99\x08t\xaeDs#7\xcb\xc9U\xaa\xe2\xf1\x08<\xeaKT\xe3\xd8\xc1\x89\xeb^\xd9 \x8a*Q\"\xf2\xe7eG\xf0\"\xfe;\xb2\xed\x13`\xbe\xd4\xed\x1a\x80\xdbTH\x81\xdb\xf4\x93d\xbel\x02\xecu\xca{\x08\xd8\x86\xc9\x03`'\x85\x07\xc06\x9f\x1a\x10\xdc\xab\x9c\x96vKix|\xdc\x97Xt\x8e\x0c\x05m}\x03\xf4G[\xbd\x1e\xcbl\x8d\x14\xccl\x07\xca\xd94BY\x05\xe5=\xc42\xcb\xe5\x01\xcc\x92\xc2/\x0c\xcczZ\xdb\x82\xf8\x1d\x16~?\xa9V\x0d&\xa7\xcbS\x83+\xe6\xd0\xb9\xe3\x12M\xb4'$\x0f\xc3$%\x0eC\xb9\xe4\xd1\xadZ\x1c\xea\xacXM\x96\xb9\xd6\xfd\x1e\xda\xa5\xe6\xf1`\x95I\xe1\x17f\x95\xdb\x86\x18{\xb3&L\xbf\x0f\xe8\xd1\x03r?\xcd\x9e\x94\xb4\x84\x98\xd7\xe4\xfeG\"\xaeJ\x0fW\xca\x86\x90\xab\x95\xa5o\xb3\x97\xd1\x03r\x0fs\xd2\x98\xd8\xa1\xa6\x93=\x84\x93\x1c\xa7\x07PI\n\x0f\xa0b>\x1d@\xe5\xaf\xb0R\x08(\xeb\x80+\x94\xb5\xc1\x95\xac\xd6:\xaeP\xa6p\x05t\xb7\x8d\xe8R\xdd\xd5>\xa2K\xc6\xe9\x01]\x92\xc2/\x0c]z\x1b\xa3\x10\xe8Nu\xec.:%k}\xad)\xe8T3Mk\x8b|\xb5\xd46M\xeff\xe5 `\xb6\xca%/\xcc\xa5km\xb4\xd5\xea\xce\xf7\xd2X3V\x0f\xd6\x9a\x14~a\xd6\xbam,P\x9f\xb6p\xa0EF\x9d\xca}\xa1\xb1 C9-\xbc\x80n\x03\xf8]\xa2\xdc\x90>\xc6\xd6H!/\xd90\xa1\xa5f%`\xab \xbc\x87\x98f\xb9<\xc0YR\xf8\x85\xc1YOk\x13\xc8\xdci\xee\x0c]\xde\xeaB.\xea\xcd\xee\x1a\x99{\x93kWo~\xa5\x9a\x85\xcd\xcd\x08E\xec\x9b\x0cf6\xc9\xb7\xa0s\x86.\xc8\xfb1\xdcp@&\xe2\x08M\x92\xf1|\x82\xf0%\x119k\xf2W&)\xb7\x94&\xb3\x99\xa2\x8c$]c\xd9\x96\x9b\x90\xb2N\xfdk@\"\x11M5N@\x19\x1f,\xb1FCKz\xaa U\xd6\xe9\xb51J*\xb5q\x8f\xae\xb5(sa\xf2\x06N\x0f\x88VQ\xe1\xaf\x85h\xdb\x86h\x95\x1b\xff\xa5I\x97\xc1X\xe3\x0d<\x85\xaf.q\xa9\x1f\x83}\x05<\x82|\xc1\xcd\xfdW\xd5\xc1\xde\xa6G\x0b\x7fd\xb4w\x94\xa7\x92\xc2\xb8\x8ag\xcc\x9b\x92\xdb\xe2\xf8\x0d\n\xb9\xe9%\xc9i\x9d\xc2\x926y\xef\x82U\xe8B\xdc\xa8P\xdb\x84U\xb97\xc9q\x05\xec\x8aC\x86\x12\x02\xee6\x1e\x7f\xa8\xe4k\x07 \xde\xd7\xd2\x0f/V.\x14~a\x18\xd5\xd7\\\xf3{R\x0b\"\x16\xadw\xa5\xda\xedHU\xeeF\xe5~\xa3\xcc\xe3\x8dF\xf8\xd9\xec\xeb\x1c\xf6t\xcaE_\x9e1n\x1b0(\x83\xabv\xf4{\xb4\xabs\x94\xa7R\x05\x1c\xad\xf7Nn\xaa\xf7u\x1a0CT\x81Fn\xa9\xd6\x0e9\xf6}\xe3$\xcf\xea\x01;\x92\xc2\x03v\x98\xcf6\x8b\x8d]\xac\x12\x8e7\xf3\x12\xaai\xe8\xc4J\xaf\xb3P\x94\xc9'\x8f\xcb\xc5}2H\x85\x18M\xf7t,ONw\x0e\xe91s8\xf3h\x14\xa0;\x95\xf7\xadQ\xfdm\xd6\xec\xe6\xbe \xd7\x8b\x15Sd\xcfu[@\xf9&p\xaf\xefs\x0f\xe1\xbd\xc8\xec\x01\xe0\x93\xc2\x03\xc0\x9bO\x0d\x18\xf94\xa0\x7f\xc6 \xd3=@\xa2,\xadJ[\x10\xfa%kQ\x0f@Y\xa5\xb5\x17)+\xcc\xb9\xc3\\>\x97&\xf4\xa9\xeel\x0f\x91'c\xf4\x80:I\xe1\x01u\xcc\xa7\x06u\xfe\xea\x07\xdb\x97\x84Je\xf4\xdb'\x1d\xfa\x17\xa1\xf2\x15\x15\xb2\x01`\x92*\x95\xbb\xd4\xb6?\xfb\x96`\xa0\x0c\x12^\x9a\xb0\xa6\xaa\xd7=D\x9a\x84\xcd\x03\xce$\x85\x07\x9c1\x9f\x1a\x9c\xd9\xab\xa4D\x9bn\x17\xf5\x01\xben\x1c\xfdUa\xf8\xc8\x0e\x7f\x94\xb3\xbfT\x95G\xe7\x8e\xc3c&\x7f0y\xda\xf2\xc0\\sT\xa1\xee\x88\x82N3UF\xc7\x86\xb4\x12\x0d\x02\xc8+\xb9\xce\xe1\xbd\x81l\xd6\xb08\xf2\xe3\xc2\x10_\xc7\xbe\xa4\x82\xce\x9f\x17My\xebq\xcaE\x84b\xc1}w\xf8\xc1.\xb5\n\xae\xf9\x98\xfa|\x845\xd9\x08\x07I\xe7\x91g,\xcd\xc088k\xd5]W\xcfc\x18^K\"\xd1\xceg\x9f9L\xa0\xb0\xad^\xe5D1[\xb3\x14\xe8&\x88j\xc7X\xb2\xc7\x8d3\xc3x\x033\xdd51\xb0\xc62\xadp|\xcd\x9c\x17\xcc\xac\xe5\x8c>KR=\xf5\x99S\xba\x03\x83\x8cpI\"w\xdaC]\xf8\x92a\xd4\x87\x80\nT\"\xee\xf7!!\xb9$\xfetF\xc3\xa9\x0e\x84\xbb\x90\xc8\xb9\xeb\x0e\xad\xb3\xd4\xf9\xc3O\x91\x89\xedwf\x8ee\x0d\xbd\xd6\x12\xcc5\xad6\xcb8T\x95\xf7\x8e\xad\xb5\x83\xd7\xd0~\x12\xcasp\x94\xff[k\xd1\xd7%\x8d\xdb\xda\xac\xb5\x01uS\xba??\x1e\xc9\xfb\x0d\x1aN\xb7k\xdc(`\x93\x90\xf6e\xcc\xdc>\xc2\xb51\xef\xe0R\xea\x01Vi\xda\xbf\xce`\x93\x12\xd8\x85G\xd8\x07\xadjT\x8c\x9f\x88o\xcf\xd0\xed\xa1^t\x9b\xdc\xc6\xf1\xfeR\xb9q\xbd\xed\x80\xfft\x17I\x1c'\x0e\xa6&\xde\xe8\xd4~&\x90\xc9\xa9\xa4A\xbd\xd7\xd9N\xb0\xff\xb2[e}\xc4\xba[[\xfc\xac]C\xa5\xec\xed\xc1R}\x9f\xf7%E\xbf\x12\xdcK\x1c\x8e\x90\xc5Aa_`Ts\x9bkdr\x1e\xe5\x7f\xd1\xe7u\x13\xb5\xcb\xfd.\xe8\xef\x85\x9b\x14j\x82\xb9(\xecb\x8c\xee*\x9f\xc9\xe0\x1du1\xb7tIw0\xf2\x0f\xb4\xd6o\x8b\x95$`\xb6\x19\xf3G\x11{h\xa1>\xf3\xd5v^rC\x89\xc8r*\xef\xbb\xb4\xf4\"\x1eti\xb7\xa3\xd5\\U\xca\xbb\x81H[\n\x03Sm\xbf\xea\x0c#.\xf9,\xf6\xce\xd9\xaa\x06\x96\xc9\xca\xe7\xa4#\xfa\xccV\x12\xab\xc9\n\xb3\xebV\xb9>\xeeK{N6Ax\x07\x91*\x1d\xa8\xc2\xbdj\xb1>S5\xab'\xdc\xecBVrWq\xabI\x85\x82\x9a&\xf1\xaf\xea\xef6\xd5\x1aG\xddB\xc6n\xf5\x0f,#\x9f\xcf[[\xedQ\xfeo\x82^\xe9\xb2GX\x10\xcf\xaf\x83JW^\xdb\xc39)\xbe;\x96{^\xe1_\xd6\x08\xb5\xaaq\x91G\xce\x98y\xf7\x88\xe1\xe9\xd9\x820\x86~\x1f\x80\xed\xea\xdc\x9b\x96\xf5\xc8\xdc\xe9o1\xc68uHH\x1c*7\x85U\xbd\xfa\xd0\xfenh\xfaaDy\xb4\x0b\xc6#t\x90I\x7f5U1\xdf0\xd4\x8f\xf2\x7f\xebT\xe55gT\x16\x9e\xbfm\xad*\xe6\xd4G\x1d\xcf3\xce}$5\xc8#$\x896\x8d\xb6\xb2\xa1\x1b\xa7O\xe7\x06\x90T\x8e0u\xd7\x9eS\xf6'\xaa\xfcBG\xfco\xd2u\xfdPux\xba\x94 9\x8d\x8a[\xb7\xc3Pv\xe2h7\x84\xc9\xdd|7\x84C$\xb7\xbb\xa1\xacub\x1a\xe1\xa6\xa0r{\xcaj\xc1\xb8\x13\xc2a\xc4\xe7-\xf6\x80j\x08\xafy\xe9\xa3\xfc\xdf\x1c> d\"\x16W$\"\x81\xe8\xbd\xed\x11\x90\xfb\xe9n\xcc\xcf&\xb4\x1f\x9c\xae\x9e>\xca%\x99\xaem\x1ew$^)\xe8\xf4\xb8\xc6\x8b\xd2\xf9\x8b\xadE\xdc\"p\xab\x16`ztc\xeb\xa6M!\xfa\x8e#\xd6Ja\x16\xdf%f_\x7f\xd6C\xa4\xbb\xda\xac\xfbS7q\x07X\xa9\x0c\xb0\x1fSzUR\xb25\xd6g\xb6\x18\xdf\xe8\x1f*G\xa3\xa3\x9f\xe9\xae\xe6\xba\xf2\xf8o\x81\xf6P\x8f\xacr\xfb\xb5\xb9f5\xab\xbct9\xb5k\xae\xb2'\xd0\x9b\x99\xe2\x94\xed\x8c\x9f\x1a\x85+*y\x1dg\xe6\x9d\x8bS/f\xee\xce\x18\xacx\xfe\xb4\x91\xaf\xe5\xfaN2\xec\x82\xa7t\xc7z#G\xc4\x9cU\xd8\xb9\x94\x92\xa3*\x1b\x19Z\x10_\xdaL\xf8\xbb\xe6){@\xb4\x91\xabX\xa0;u\x168\x08W\xad\x1cf\xde\xe3\xf7 \x99\x1a\xb7,\xf5\xb3\x1e\xe1\x13\xb1\xc0M\x1b\x17\x19\x81\xa3\xfc\xdf\x0d\xfe\xe1Y\xd1{m\xed#\xba\xee\xa74\x8d\xda\x1esl7\xd8\xbc\xdfY\x053\xeewiy\xc7\xfd\xb8[\x9fN\xb4\xe9\xb1N\x07\x01D(0\xaa\xdfzh\x0c>\xc9\xfdT\xc4a\xe8w\x8ae\xee0\xda\xcd\xd1\x97ng\x8b\x8e\xf2\x7fk\x14\xb9\xb4\xb0\xea\xa3\xcb\xe5\xc44\xfa\xc7\xbaP\xaeb9W9\xf2\xf4!S+\xba\xcd\x83{Qz`U\x13\x18\x0d\xd1U\x1a\xfb\xf4\x9b\x8e\x17\xeb\xa3\xdfzZ\x94J\x939NY\x1cl\xf0;\xdb-\x1f\x8f\xd7\xbb\x18v\xfb\xad\x83\xbc~\xa9\x98\xc3\xad\x05\x16\xc63\xb5\x98\x99\xaav\x7f\x947\xac\x1ck\xe9\xc5\x07W\x88\xbd\xc6e\xf2a\x1a\x1d\xd8\xb0\xbc\xa8:\xc9\xbe\x0eU\x85\xd24\xd7\xdb[v\xcb\xf8\x92\xc1rA}\x04\xc7\xa7\xc8$P}'\xc7#BN\xc5\x8a9\x94\xcdu\x8a\xa8\x1a\x07\xc6],\xbf \x03\xea-\xf1\x92\xbb\xa8_cQI\x8c\x8a)\x8f\xe5\x8c\x17\xcfOA~\xb4\x8d{\xd1N\xba3>\xad>SW\xcd\x94\x9a\xac\xf2\xa6z\x9d\xb7\n\xb8\xc4)\x0d\xfb\xe1z\"\x85\x9f\xe5\xa2\x9f\x9a\xc8\xfb)e.vz\x1a\x1e\x85\xce0^*\x19\xcdU\xc4%w\xb8\xff\xcb\x9ag\xddz\\\xe1\xe3M\x12\xee\xe0\x98+}^\x7f\xb2$\x1c\x8a\xd7J\xe9V*g\x0f\xd1\xf6\xc3\xfd&A\\#s\xd7\x9fEA\xbd\xdd\xd5=\xc8\xaa\xa4\xfe\x06\x9d\xbb\xddQw\xcc\xe3\xd6\x01\\H;f\x92\xc7\xbb\xb9\xb6\x9b<\xccZ\x1a\xce\x17w\xd8\xef\xbeE\xc7]@\x93&\xb6\xbf\xa4\xba;\xdb\xf2%K\xf5\x7f\x1fA\xf4;$\xb8'\xbb\xa2\xe7\x06\xcbwtgl\xb7\x03\xca\xa3\xf4@'\xb2\x8d4\x9e\xa3\x8fs\"\xd1\xfd\xf2\xc4\x92k\xecZ)L\xb7\xa7\xd2$\xdc\xf4\x8es\x0f\xa1\xee\xfa\xe2V\xd1(rM\xaa\xb7\xb7\x12I\xd5\xc6\x9f\x031\xb4\xa6\x97\x1b9\xd3\xfbc;\xe6\xaa=3\xd9\x11\xd0i\xf9\xda\x1fT\xe8S\x87hbXU\xc5A\x94u\xe3\x85\xcb\xee\x0f.\x1b\xe7%\xe3\xfe\x8d\xc94^=A\xed\x04\xf0\xa6\x9c\xac|k1\x1clv\x9d\xb3\x02\xf5t}\xfd\x92\xfa\xbeI\x9c\xbf\\ \x83\xc8\x1c?\x84\x8c\xe3\xca\x01\xfdY\xa6^=\x86\xeb8\x00\xee\x81\x9dt\x9d\xfe?\xe5\x1ff+\xd0O\xde\xc6\xd0q\xa8\x9f\x0d\x90\x14\xb3K\xf7\xb0\x9e\xae\xe7\xdew\xf5\x90Y\xd2n\x8f\x03\xfe\x80\xa9\xab\xc9\xad\nC\xdaC\xed\xd5\x86\\\xe3j\xdc)\xdc\xd2\xe8 \xc0\xee\xa7[\x9bd\x96\xde \xe9\xc0\xd1\xee\xcf\x1b\x14\xa4]\xb1\xf1^'\xeb\xed\x1e-\x14zi~\x92`/\xdf\xf4\x1en\x9dx7;\xe8jf{\x00L\x9d\xac\xba\x0f\xca\xf6\xdcuPC\xed\xf4\xf7X\xa3\x9bW\xfc\xd5\xb5\\\xdfT\xae\x1cTz\x1ce\x087\xb0U\x12\x83\xc2d\x953B\xd9tZ\xcb\x05F\xb9\xc4}\xff\xfe\x9f\xff\x15`:\x110\xe7 \xf9\xb8Z4\xdb<\xafl\xc3\x87~\x83!\xf1}\xbe\x14\xc0\x19\x82\xe4\xa0OI\xe9\x1c`\xe9\xd9!\x159$\xef_T\x05\xd7\x98\xdd\xca\xf8\x99\xe9\xdcO\xf9\xf4\xf8<\x02!y\x08T66\xf4\xbcr\xcb1\\(n\x04\x07dd\xe6\xa3IE\xa6\xc7\xac8C\x97\x1a\xc6\xf4\xeb\xc9r\xa4_\xb84\xa3[#\xb9\xed\x92@|\x86\xb2k\x08O[\xdd\xc8-\x0c9\x0d(oT{\x93\xfdM\xa7\x83\xcb\x06V\xe3\xd1\xdaZ~uwW\xba9\xdc\xe2\xaaUo\x03e\xc5\xa8\xe6\xe5YJ\x1c\x1ex\x11\x0f\xe0TM\xf1\xa3\xd3\xd3\x87\xa0\xffM\xecu\xb9\xa0\xce\"\x89\x9dy$`I}\x1fB\xb2R\xd5\xef*\x9eW\xe7\x06\xa0\x8f\x07 \x9f\xd7o\xd1\xf6\x18\xc0e\x1c\xcc0R\x82\xe4\x8e\x13\x87\x14]\x10\x12\xc9-\xe8\x0e\xc7p\xc9%\x9e\x81W\xbd\x160\xaf\xfdC1\xb5\xd9A\xaa\xd9g\xf4\xb7i,\xb0>\x06\x19\x84}\xd5M\x8c\xb0$\xbe\x8fR?\xf0\xd4\xe3\x18d\x08\x01e=\xcc\xe3:P< \x99\x08\x96\xfe\x8eC0\xb5\xdb\x8c,k\xaeq=\xf5I\xf5h_\xd9\xa4\x90\x86\xbd\x81\x06\xda9\x9bJ\xb3\xf1\xa6\xf8k\xba\xc8\xbfPI/0\xc5\x19p\x8b\xa2O\xe1\xd11pf\xbf?\xde\x10no\x8aK\xaa\xf9\xb9\x10@20\x00\xfb\xde`'\x8e\"d\x12\xecr1\xeb\xf8(\xff\xb76\xa4\xd9\xaf\xcc0{\xbc\xbd\xde,\xceA\xb6\x1bw\x7f\xd0z=\xa2\xcd\xb5\xda\x14\xe3\xb7=OY\x95:\xd4\x1c\xa6\x1c\x9d\x8e\xf2\x86\x9b\x9ci\x1c\xfdpq\x950\xf2i\xa3\x94vq,s\xcb\xe3\x95\xb5\xe2\xc9\x1f \x1aRTIv\xccz\xf1\xe5\x8d\"9\xf1Y\xa4a\x8es\x16\x7f\xb3\xa71\xa7\xd9\x0eo\xb1\xbcp\xe4r\xf4\xe8\xb4\xe1\x93oV^b\xb0\xd8\xf7\xff\xd4\xf9=\x1c\xbb]\x9b\xe8\xad\xf9\xeaw\xfcv\x9bUgF\xe0(\xff71\xb4,kq\x0b\x0b\xab\xdd4\xa9Ha\\\x03\x9a\xa5kw\x9b\xb8\x13\x92\x06\xf6\xf4\xf9\x0f\xf1j\x1b4\xa8\xe3U-\x06\xa6!\xe9$\xf7\xd6\xcb\x9b-\x86u\x8d\xbe\x7f\xee\xfb\x83\x0d\xad\x9c|\xbc7s\x7f\ng;\x14\xfa\xcd}\xb6\x90\x1cbl\x83\xf1\xa7O\x06\x0d\xc1\xd1\xd0g\x8c\xb6\xdf\xc1,\xde\x07\xed3\x16\xaf|\x97\x14\xba\x8d\xa5\x1a\x8d*\xef\xadn1\xce\xd2!\xed>\x03\x9d\x1bR\xd3\xaeO\x94\x9c\x05\xa1lsN\xb2\xea\xb6\xc9\xe1\xf2iX\xbe\x1c\x01\xf5\xc2\xdbp\xc1\xa2\xb2'\x12\x86\xd3\xae\xcf\xf0T[!+r\x11\xb4b/\xbd\xe8\xbaaJ\x7f\"\xfe0V\x98\xed\xbc\x0dh\x8ae\xf9lV\xd1\xd7\xe4\xfeG\"\xae\"\xea\x0c\xb2\xf3n\xaf\xb0\x0d\x9a{\xab\x9ao\xca\x06\xe5\x9b\xb2?\x8ao!\xd0\xd5\x8fp\x06Q#\xf3\x8c\xad\xdd\x85\x96\x8c\xb5\xe3\x1a\x02}\x1e6\xb7\x1a~\xe9*G\x9f\x91\xfbTHd\x8a\xa1\x1av\x1b\xaf3\x98\xd6\x0d;\xa1\x03\x1b_\x01Nc&\xa7!v\xde\x86mzB\xddD\xb5\xfd\x90j.\x98T\xdc\xc3\xa9\x1em\xf5\xdc'\xf7SzLzh\xefALk\xae\x186\xdf\x8c)\xdf\xa2\xa8\x14a7\x1fi\xf4I/\xba\xba4g(\x97<\xdat\x83\xa2\xb2i\xbb\xcb\x96\xd5\x9a\xb8\xe1d~#npFo\xbb\xedF\xf2\xd2\xd5\x1c\xd8zd:\xfd\xe3\xaeR\xb4\xb2\xbe\xca\xd9\xafx\x13w\x8f\x99\xdf\xfd\x85\x85u~\xb7\xbf\x82WK\xa3\xc7\xc8\xfbE\xc9w\\\xaa\x08=\xe4\xcb\x8d\xbb#mu\xadr\xe4koC\xee1\xe2]\xe6*\xacL(\xb0\xc5\x0c\xe7}k\x8f!\xaa\xfa\xd38\xdat\xc0\xa40\xce\xb5\xb7Z\xbf}\xf3\xea$B\xc1\xe3\xc8A`$@s\xaa\xdc\x1cx\xf5W@]d\x92z\xd4\x1e\x85W\xb4\x81{\xfa\xbb\xc0\x88\x12\x9f\xfe\x8e\xee\x84%\xbb\x980\x8b=\x0f#\xb0\xa9~\xc7p\xb3\xa0\x02\x0c'\x10\xc4B\x82\xc3\x99$\x94\x01\x91\xe0#\x11r\xc28C\x98\x8cN&#p\x16$\"\x8e\xc4H\xb5CP+W\x108\x0f\x90\xc9\xa4\xd3\xb7o^}% $ra\xc8E\x18F(\x90\xc9 S\xc5^\xec\xfb+\xf8-&\xbe\xe2\xd95#\xb2M5\xef\x0f\x88\x00\xca&\xec\xbd\"q2\xe7|\xee\xe38\x99\x90\xf1s\x9b\xee\xe4\xfdC\xc3\x81n.\x16<\xf6]\x98!(\xb6\xc1!\x8c3\xea\x10\x1f\x94~O\xd8\x03\x1c\xcf\xc7\xc7j0\xfa\xa4\xfcd4\x9e\x8c\x80\n`\\\x02q\x1c\x0c%\xba\x0f\xc7\x136a\x17\x0cB5>\xea\xe01H$\x81\x80X\xc4Dq\x1cF\xe8\xf0 \xa4\xbe\xeaDr\xcd\xef\x8c2\x12\xad\x80\xf8\xbef\xdd\x9e\xf7\x97\x0b\\M\xec;\xbd\x81J\x90\x1cb\xa1Y\xd3\xe79\xed+\xb1\xb9\x07\xe7l5\x86\x9f\xf8\x12\xef0:V\xbc*\xd9%\x87\xc5U\x13\xb9\xc0 \xd3/\xfdFx\xbf\x902|\x7fl\xfe\x8a\xf7\xc7\xc0#`\x1cL\xe9\xb1\xbe]\xe0\x10\x06<4\xb1\x96\xbf\x02\x81\x12\xe2\x10\x88\xe6m\xc2\xf4\x01\xa1\xc8\xb0\x18\x90P\x18i\xeb\x1e%O\xd4\x01rV\x04D\x80\xc7\xf5\xe5\x853%\x9c\xff\x07\x17^\xd6\xa5\x12`\x18\xf1;\xea\xa2\x9br\xa5~$B\xc4\x01\xbac\xd5\xe0\x9c\xc1O77W\xf0\xe3\x8b\x1b\xe0,Q\x0f\xa3\x17+\x8a\xbe\x0b\x04~-O\xf1\xcd*\xc4w\xbf\xbe\x9b00\xc7p\x95\xe4\xac\xa4\x0d^\xe9\xb1\x87\x11wc}\x7f\xd5\xbc5\xdd\xf4\x17\x86>u\x88e?Bs\xf7\x02]5B\x878Jc9\xbf\x8dC\x884`\x0b\x98\x11\x81\xaeeMu\xf8\xf6\xcd+M}A\xee\xb4\xf8\x83\xdc\xbc\xbbf\xe2I\xc2\x8c\xfa~\xc7\xa9\x0b\x84\xadT[CZ\xabe\x84\x1e\x8f\xf08\xa9\xa9\x08\x10Ig\xd4\xa7r\x05\x0c\xd1\xd52\x9f!\x84\xf6\xe0\x96\xab\x08p\xa6\xec\x8b\xcdQ\x97j\x8d\x1a\xc3\x83\xb7\x02\xc1n\xe7\xa9\x81\xa8ISJof\x8d02\xd7\x8c\xcf\"$\xb7J\xbb-\x85\xf1C5e\xe6\xf4\xb5T\x16\xee\xc5\xcc1\xaa\xa1x\xb0\xdao\x0f\x17\xfb+ \xe9\xd1g\xab\xa7\xdc\xf3\xa8C\x89o\x91c\x16{\x10\xa1\xc2\x03<\xd6w\x86\xa9L\x88\xc4J\x84J{3\x85\x9a\xe1\x9c2\xa6\xd8YR\xb9\x980U26\xf3LB*\xc6\x0e\x0f\xb4\xbd]kU\x12\xa0w\xe7\x95j\xb2\xb2\x9e\xc3\x03Ex\x81\x80A(WV\xf7\x1eB\xa0V\xec0\xc3 \xd3\xbd\xab^\x80\x06\xa1\x8f\n\x89\xf4\xfc\x83\x08\xd1\xa1\x1eu@`@\x98\xa4\x8e\xa8\xb9\xff\xd2\xe6\x9cp\xd3*\xa9 \xbe_+M\x9far\xb0;\x87\xc8P\x06d\x8b\x81d\xc6\xef0a\xdeN\xf8\xb8\xc2/\xa7\xce\xa7\xd4\xe3\xfbs\xb6z\x9f`\xb8P\xe6A\xa2\x19\x95\x91\xd2\xc3\x86\xde\x13\xfb'>\xb7\xb3\x06d\xc2\x94\xb1j\xc00\x9d\xcc\x1a}L\xeaR\xd4\xcc^%J\xe3\xd3\x99\xee\xdbb\x85\x00\x11\x87!\x8f4,\x86\xc4\xb9=\x89\x99\xfa\xa3\xc0\xd0\x9e\xbaO4\xd0\x807\xf7 \x96\xc6p\x12\x15\x16\xcaB\xb3e%\xcc\x91a\xa4\xaf\xaf\x07(\x17\xdc\x15 o\x8a\xa6\x96\x9f\xe2\xe8\x85y\xb8\x01\x8f\xce\xe0Ju\xa8\x94\xd8\xf6M\xd2\xe1S\x06\xcf\xfe\xe3?t}%\xdc\x97\x9c\x83\xc79<\x85\xf1x\xfcO\xf3\x9b\"J\xd8\xca\xfeG\xd8j\xac\xc8\xbd\x8cx\xf0\xc0\xe3\xfc\xa1\xfd}<\x1e\x9b/\xd4\x83\x07\xaa\xd2[\xdd\xd5\x0d\x7f0\x89OO\x1f\x7f\xa7\xaa>\x84\x0f\xa6N\xae\xfa\xa7<\xab\x8f7\xb0\xfa_\xe4\x8e\xb4\xe1\x15\x9ej_\xa3\x084\xf2H\xc5\x83\x97\x9c\x8f\x1d\x9f\x08\x91\xe7\xce\x90U5\x0c\x17\xb9Z\xff\xcc\xb1\x0d \xdfO6\xf0}\xb5\x92\x0b\xceR\xce\x0d\xf9\x97\x9c?\x18\x8f\x15nY\xb9\x1a\xae\x1f<,\nZ\x0f`\x9d\x7fU|a\xd8\x7f\xfe\xe2\xfa\xd9\x9b\x8b\xab\x9b\x9f\xdf<=}\xe2\x18\x16\xf4w\xcc\xd5T,\xd5W\xcc\xb1x\xe1\xd9x\xa3(}#G*`\x89\xbe\xff\xb5I\xb3\xaa\xf4vA\x84Zr\xc4B\xf2\x00\x8cz\x14'\xf7\xd8x\xd0\xd2\x8c\x1b\xe3\xc9u\xa3\xa6\x94\xcd\x81\x98 \x9d\xb0\xf7Zu\x92\x19]p\xdf\x15\xf6>X\xda\x93^\xedXM\x00\xbb$\xb1\x8a0a\x9aL:\xe7\xf0@\xe9\x7f2\x94\xb5\x90;YU\xbd\xfb\xf5\xdd\xc3\xb3>\xf3T$W\x98*=\x1eC\xe3\xd1\xf8\xf1\xa3\xc7b2\xb2R\x1fU\xae\xbd/c\xdf\xff\xa5\x14\x9a\xd5\x85e\x15\xaf\xf3\xbb|\xfb\xea\xd5\xf4\x97\xf3Wo_$\xc1S\xe5\x8b\xfbr\xd5j#\xaa\x94\x13\xb3\xbe\x01A\xd9\xdcG\xc9\x19\xa8n\xd1\x8cUM@:\xc7z*X\xec\xfb\x16\x00<\x13\xc4N\xd8{KG+S\xcch\xe2\x05\xeb\xb0D5,\xf5\xaf\xab\xbdW\xc4\xdf\x9b\xb6_C6\x883\xb8L{\xb5Q\xa3\x8a\x18\xb5lGx/1b\xc4\x7f\xce\x9dl\xa3b-b\xe5\x91\x0eBc \xaf)S\xc0\xaa\x9fp\xeb\xb3\xbcVD#\xb3\xa51\xd2\x11\xfa\xd9\xc9\xc9r\xb9\x1c\x07\xba\xee\xd8\x1e\x1e8qU\x17\xaa\xe3\xa3OG\xff?\x00\x00\xff\xffPK\x07\x08\xeaD\xa8i\xd6\x1f\x00\x00 *\x01\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x00index.htmlUT\x05\x00\x01\x80Cm8\xac\x92\xcdj\xeb0\x10\x85\xf7~\x8a\xb9\xdc\x85\xee\x85D*\x0d\x94bdC\x7f!\x8b\xb6\x81$\x8bRJQ\xacI,W\x96\x8dFN\x1bJ\xdf\xbd\xf8\x87$d]m\x84\xe6|:gFH\xfe\xb9}\xbaY<\xcf\xee \x0f\xa5M#\xd9n`\x95\xdb$\x0c\x1dk\x0b\xa8t\x1a\x01\x00\xc8\x12\x83\x82,W\x9e0$l\xb9\xb8\x1f_\xb2A\n&XL\x1f\x8c\x0b\xe8\xe1\xb1\xd2\x08W\xb3)l\xcf\xa5\xe8\x95\x9e\xb2\xc6\xbd\x83G\x9b0\n;\x8b\x94#\x06\x06\xb9\xc7u\xc2\xf2\x10j\x8a\x85\xc8\xb4+\x88g\xb6j\xf4\xda*\x8f<\xabJ\xa1\n\xf5)\xacY\x91\xa0\x0f\xb5\xd9\xa0\x1f7FL\xf8\xe4\x82\x9f\x1dUxF\xc4D\x1aI\xd17-W\x95\xde\xa5\x91\xd4f\x0bF'\xec@\xb2T\nm\xb6-:0\x94yS\x07 \x9f\xfdJ+\xe3U\xe3\xb4E^P\x1b\xd5\x9b\xefS\xd2y\xcf-\xa7\xd7\x1d\xf5\xef\xab{\x9ev5\xde\xc6\xc0Tm\xf8\xe0\xc5\x0b\xaa\x1c\x1b\xed\x01]\x95oF\xc7\xc0\xfe\x1eMs\x90k\x8f\x84\x81bx9\xc9\xe0\x83\xc2Umh\x04\xa7\xea\xfe<\x0f\xcaie+\x87\xb3\xee\xc2kg\xfd\xfd\xffh\x08\xd1\x7f\x95\x9f\x00\x00\x00\xff\xffPK\x07\x08:\x7fBW;\x01\x00\x00;\x02\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xeaD\xa8i\xd6\x1f\x00\x00 *\x01\x00\x10\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00api.swagger.jsonUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(:\x7fBW;\x01\x00\x00;\x02\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x1d \x00\x00index.htmlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00\x88\x00\x00\x00\x99!\x00\x00\x00\x00" + data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00 \x00api.swagger.jsonUT\x05\x00\x01\x80Cm8\xec}\xdd\x92\x1b7\x92\xee\xbd\x9e\x02\x87s\",\x9dm\xb3[\x92\xed\x19kB\x11+\xcb\x92G\x1b\xb6\xdc\xa1ny.\x86\x8e\x12X\x95Eb\xba\n(\x03\xa8f\xd3\xb2\"\xf65\xf6\xf5\xf6IN\x00\xa8\x7f\xa2\xfe\x8b6e\x15o\x9aM\x00\x89D\"\xf3C\xe2/\xf1\xfe\x1eB\x0b\xb1\xc3\x9b\x0d\xf0\xc5\x13\xb4x\xb4\xbcX\x9c\xa9\xdf\x08\xf5\xd9\xe2 R\xe9\x08-$\x91\x01\xa8\xf4\x1f\x08\x95\xc0\xd1k\xe6\x01zv\xf9\n\xdd>\xd2\xd9\x11Z\xdc\x02\x17\x84Q\x95\xe9\xe1\xf2q\xfa\xab\xcb\xa8\xc4\xae\xcc(!\xb4\xa08,\x92\xda\xbc\xb9|\xfe\xf9wX\xc2\x0e\xef\x93R\x08-b\x1e\xa8<[)#\xf1\xe4\xfc|C\xe46^/]\x16\x9e\x9bb\xd7\x80\xc3s\xca<\xf8|\xc3#\xf7\xf3M\xb5<\x84\x98h\n\xe2\xe6?C]b\xc9\xf8f\xa1\x93?$\xbc\x05\xc4\x05*\xc0\xca\xdb\xab\xeb\x9e\xbc\x98J>\xdf\xb0\xcf\x15W\xe7\xeb\x80\xad\xcfC,$\xf0\xf3\xef_=\x7f\xf1\xfa\xeaER\xf9\xbd\x84\x81\x85\xc4\x1b\xb1x\x82\xfe\xa5\x7f>\xe0\xe0YD\xae\x80\xdf\x12\x17\xf2r?\xebrk,\xe0\x12\xcb\xad\xcau\x9e\xc8_\xc9Y\xc4!\xe4\x04\x178\x8a\x02\xe2bI\x18=\xff\xb7`t\x91\x11\x888\xf3b\xb7c^,\xb7\"\xd7\x83s\xecy\x1c\x848\x7f\x9f|\xf9P\x94\xde\x06\x8a\x1d\xad\x14+\x0eC\xcc\xf7\xba=&\x7f&U\x84\x16\x1e\x08\x97\x93H&Z\x93\xe4@\x1cd\xcc\xa9@.#T\xa0\x80\x08y\x86\xd68\xc0\xd4\x05\x84\xa9\x87$\xc7T`W\x15C.\x8b\xa9D\xccG\x98\xa2\x84\xa3e\xb1\n\x16\x01\xd7\xcdz\xe5\xd50\xc1AD\x8c\n\x10%\xce\x11Z<\xba\xb8\xa8\xfcda\x19\x89\xd8uA\x08?\x0ePJ\xa9\xc8\x80.$\xdc-\x84\xf8\x80\x18B\x8b\xff\xcb\xc1Wt\xfer\xee\x81O(Qt\xc5y\xc2\xe5\x9b\x84\xde\xa2T\xeaC\xe1\xbf\x0f\xc5\x8a\x16\x1e\xf88\x0ed;\xd3\x14\xc5\x14\xee\"p%x\x088g|:\xde_(r\xdf0o_!\xa4L\xf2\x0e\x87Q\x00\x16Z*Q\x95\xb3&i\xe5\xf6\xb4M|y\xf1\xc5\x01Y\x9d!\x04!\xf0F\xe7Q\x80\x03w\x12y\x80\xbd\x80P@p\xe7\x02x\xe0\xd9KzX\xdaZ\x97\xa4f\xea\xa3\xe5\xf6\xcd\xf3\x85%\xdb\x87\x83\xdf\xaa\xbf|\xa8\xef\xc0\xec{\xa1+\x17\x11\xe68\x04 <\xb7P\xf3\xa9\xf4k\n\x15\xf8@\xabu2\xd1\\+\x03\xae\xa6p\xf8%&\x1c\x94IH\x1eC%U\xee#MVHN\xe8fQ\xa7o5\xccl\x81l\xb6\xd2\xce\xcb/1\xf0\xaab\x14\x99\xf1q \xea\xb8Q\xf0\xaa\xc6\xa8J\xb2\xcfx\x88\x95\xce/bB\xe5W_\xf4e\xd7\x83\x00\xd4\xe0QU\x8f 8^3\x16\x00\xa6\xd5\xd2\xb9\x99.t\xe9\x85U\x1f~.\xe8Ci\xa0H~\xfb\xc6\x00b^\xf8\xe7{E\x12\xe9\x10\x97\xe2u \xde\xba\xe04t@j\xc8\xb1Z\xa1\xb4\x86\xe14\xa5\x03\n\xc3G\x82\xc30#q\x968#\xb1\xf94#1\xd4`q\x1b\x9a4\x801\xe6\x1c\x1f\x14%\x12\xc2\xaa\xbd\x94J\x1dBxEUu\x97\x06\x01ho\xeae\x86\xa5a\x1cH\xd2\x17Jg\xe4?)\xe4_\x07\xcc\xbd9\x7foz\xa5\xb3\x9b\xfe\x8d*\xd5\x00\xfd:=\x83}]\x07R\x96\x8b\xb0D\x1br\x0b\x14\x99\n\x9b\xf0\xff\xa0\x8e\x13\xc4~\xcd\xe3\x8c\xfbi\xe2\x8c\xfb\xe63\x00\xfaF;\xe0\x13\xe3\x9eO \xf0\x06\x0ePM\xa07j\x84:TU\x1a\x87\x15\xd9\xa7%\xf3\xe9\x7f\xb5\x15:=$BXum\xa1\xd1\xca\xe1\xb0\xc3\xdc\x9a.\xc8\xaf`\xfb=\xe2,b\xe2`\x04\xd2i\xb78 \x1e\x96\x8c[y\x81[\xe2A \xac\xcd\xe7\xe7\xb2>V\x846\xd9\x88\xecc\x12\x80\xe7\xc8\xbb#t\xf7q\xc78\xd5S\xee\x16\x13\xdam\x98\xeb<\xbb\xf9\xc6\xe4.To\x1b\x9bN}bb\x98\x9cG\xa74q\x1e\x9d\xcc\xa7\x0e\x068\x0b\x9d1\xdey\xc3\x18u$\xe7\\\xb2\x8f\x8c\xe1yT\x9dG\xd5 \xba\xfbTFU\x17SO\xf5\x00\x9c\xbf\x8f\xe2u@\\\xe7\x06\xf6\x9d'\x91\xcf\xd3\xd2\xc5q\xb42\xcady\xf2\xfd\x9e\xf4\x97\xff\xfd\xef\xff\x11\x88P\x9f\xa1\xf5\x1eE\x9c\xa9\xee\xf6\x90\xe1\x03\xdd\xc0~\xb9\xa2+\xfa\x97\xbf\xa0\x97\xda\xe6\x10\xf3\xb3\xe1iE\x7fC\xafq\x08\xa6\xca\xdf\xd0\xb7y\x9d\xe8\xe0\xf3\x9b\xca\xfdy\xfaA\x85\xef\x96\x0f\xfa\x0d\xa9\xec\xc4C\xbf\xa1\xe4\xbbQy'Y\xf3A\xbf\xa1t\x03k\xb7\x05\x0e(\xd3a\xdd\x1c\x93Y\xa0\x0dC\x92-\x13\nlG\x81[\x08\xc8-\x96\x08\x07\x01\xdb \xc4( \xc9\x90\x90\x98K$\xb7\x90\x8bIIG\x00\xf5\x08\xdd\xe8\x84+\x90\x99P\x7f\xa4zl+n\x951\x8e\x84d\x11\"\xb2\xb1\xa0\xefWK.\xd1+\xc5\x8d`\x08(^\x07 t!\xcd\xbb\xe2\x0c;\x7f/\xf6\xe1\x9a\x05\xdd\x17)\x19\xa1\xaf\xa8\xcf\x9a\x1c\x94$K\xe6\x9e\xa8\x8a\x14D\x11F\x11^\xb3X\xeaC\xea\xc8\xd4\xdc\xe8\xa9X*;E?%as\xf6R\xd2\xc4\xd9K1\x9f:\\\xd3\x9ao\xc7\xb5\xd3\x988\x8f\xc7\xd8!\xceJ\xf6\xbd\x0d\xe9\x94\xc5u\x079g\xbdw\x88w\xfe\x9ex\xbda\xee\x9b\xfd+\xaf\x03\xd4\xa9lmp\xf7\xea\xdb.PW\xadp\x86\xbb\x19\xee>v\xb8#5\x87\x85GC]\x1fl\xf9\xc4\xa10\xdd&sn\x99\x04q\xfe^b\xbe\x01\xe9$\xd7O{\xe0bJ\xe8'VY@:\x00\xb4\xda\x9c'\x89i%nghK\x13gh3\x9f\x1a\xc8(\x9b\xd1\x0csG\x839e\x96\xad0\x07B\x92\x10Kp\xb4\xeb\xb7\x8e\xf7]a\xedERP\x81\xe97\xf1\xbe\xc1\xe3\xab\xe4\xcc\x9c\xbe\xb4j\xc4|\xb4\x8e\xf7\xc6\xe5+\x9e\x8ch\x80\xca\x86\xdaO\x10*+\xdc\xceP\x99&\xcePi>5\xb0c\xa6c\x9e#\x99\xb6\xcc\x93\x80\x9f\x0eh\xa9\xd9>\x16\xcf\xc3\xa6\xec\x05I\n8X\x9c\x9c\x80\xad#\x8b\xf28L\x0f\x93\xa5\xde\xbf\x18\xd5\xbf\xed\xe3wO\x96Ni|\xee\xc0n\xaa\x8d\xf9\x1c\xe3\xe3b\xfd\x98|\x0fS\x00\xb1\xc3\x91\xe3s\x16\x1e\x8d\xa1Jj\xdd\xce\x07\x8b\xd4Po\xd9\xfdXc\xea\xb2\xc33\xe8\x8b\x88\xb1\xa0\xf3>GJ\xbd\xa7t8\x8b\xeb\x0e\x1d\x8d\x91\xcc\xb4W\x06\x9a4\xb3\xd2\xcc\xce\x87\xec\xb3\xefm\xber\xa7%\x81\xb2\xaf\xac!y\x80\xb3|U\x86\xf2&oYe\xb5\xba\xcb\xaa\xee\xc1\xfer\x95\x81\x13w\x98\x15\xbb\xb3\xc7\x9c&\xce\x1e\xb3\xf9\xb4\xfby\x83\xbd\x93?jT=\x16\xcf\xc3F\xd4\xd9c.&\x8f\x93e\xe61\x0fgjv\x99g\x97yZ\x05\x98]f\xfd\x99]\xe6\xdf\xd7ev\xf0p\xb7\xf9Y/\xcf\xf9Y\x93\xf3\x8cG:\xd0\xcf>:\x1f\xfa\xd9\xecF\xe7\x89\xb3\x1bm>\xed\xce\xdfQ\\\xd2c\x8e\xb4\xc7\xe2y\xd8(;\xbb\xd1\xc5\xe4q\xb2\xb2I\xc1\xec\xc2\xea\xcf\xec\xc2\xfe..\xac\xbc+\xcc\xe2\xce\xdf\xcb\xbb\xceG\xc0RW\xec\xfa\xee\xb9m\x1aX\xe7\xc8\x16\xb3[=\xd9\x9e\xbek]\xf5'\xec\xbc\x16Y\x9e\xbd\xd74q\xf6^\xcd\xa7\x06\xf8\xe4\x9d\x1d\xf5F\x9f*\xabS\xb5\x8f`4\xcd\xbe\xb7a\xe2%'\x1db\xfe\xc2-P)z\x07\xfd}\xa1\x8b5A\x9f\xce\x90\x83\x9d\xf9\xb7G\xc8\xdf\xc3\x1aN\x11\xdd4\x933\x9e\xa5\x893\x9e\x99\xcf\x00\x1c\x19\x8di}@\xa4\x03\xe6 \xc0\xdc=\xe0\xa8\xaa\xa1\xca\x85T\x0eL\x1ejMGW\xcb\xa3\xf1\xe9\xf7wLX\xa7\xfc\xa9\x07\x95\xa5\x10\x8f\xcag\x1c\xf9$\x90\xa0\xdaq\x84\x1b\xba\xa3\x1c\xdd\xb2JT\x88L\xec\xc6j8i\x85l\x9f\xb3_\x81\xf6\x7fO\xe9\xa5.\xd7\x80\xd9&C\x86\xd9\xa6\x9e\xf4!\xa5&\xac>\xa4|\x82Xm\x98\x9c\xb1:M\x9c\xb1\xda|j\xf0\xef\xa4\x9eHJ\x16\x1f\xa7\x87\xc6!\x1eh\x07~?J\x87\xb9\xeb3\x19\x1b\xa0 \x88\xe8\n\xbb\xdf%\xd9\xebq7\xc9\x91\x01oR\x81\x1a\x13\x1ba\xd7B\xf9\x04q7\xe1r\x06\xde4\xf1\x13\x03\xde\x91q\x85\xb78\x180?\xfd\x87*\xd5`r:=3\xb8r\xbcX}KT;\xa5B\xb2(J\xc3\xbfR\x90;\xc6o\xd4\x1cV\x07\xb0n\xb2\xcc\x83\xeaO\xd0.5\x8f\xb3U\xa6\x89\x9f\x98U\xf6u\x87Nf\xea\x9a}o\x1b\xce;\xdd\x9a\x0c\xf1\x9d\x93\xef\xfcu\x04\x97\x1f\xf0\xddwX\\V6\x0b\xab&P\xc8\x95\x07,O\xa2\xab\x85\xf8\x0empc\xa4\xc2\x9aJN\x10H\n\x9c\xcep\x92&\xcepb>\x03\xe0\xe4d'\x08\xddV\xd4CB\x07@\n\xa1] %\xcfu\x08)\x84*HA\xba\xdaF`\xb1Wu\x8a\xc0\x92s:\x03K\x9a\xf8\x89\x01\xcb\x18;\x14\x02<\xc7\xbc\xf65\xe8Q\x92\x1f4\x85\xc3\xf7\xbd\x0e\xac2\xcf\x96\x99\xa5\xa9\xdd\xcc\x14\x04Z\xef\x0b\x81\xf9\x0b\xcf\x924\x9a\xa9\xbd\xf2\x93\xb4\xd3\x9c\xd5\xd9P\xd3\xc4O\xccP\xfbz\x00\xf5\xc1\xf7'\x9aT\xd4\xa9\xdc\x9f\xc9#\xe9\x1e\xf5\x94\x82\xd4\xf1\x00\xbbb\xdfk\x90-\xa1N\x93\x1c\x19\xe2\xa5\xeb#\xa4R\xac\x82k\x16\xc2'\x08i \x973\x9a\xa5\x89\x9f\x18\x9a\x8d\\\xb4\xd4Nx\xe1\x90a\xe7\xcd\x02\xed\xda\xd8\x0f\xf7U\xec\xa8!\xe7 \xdaS\x85\xdb\xd9\xae\xd2\xc4O\xcc\xae\xfaz \x1f\xe5\xa8\xdcm~\"\x80zN\xe1\xe0o\x11\"\"&\xea1\xe2\n\xa8w](W?DWr\x96\xf6;8\x8880\xb1\xfa\x937\xee\x04\xd9P\xf0\x90\xbc[\xa2k\x86\x80\x8a\x98\x83yc\xaf\xf8>\xde\x0e\x8b\x02B\x04{\xf3&\x9d\x94&\x86\xbf\xa2\xbc\xcep\xf2\x0c\xedY\x8c(\x984\x9fPOg(\x92[\x9bw\x03\xb6Xl\xf5Q\xa1R\xb5\xdb\xf4a4\xa4\xcc\x04\xc1/1\x0e\x84\"u\xd14s\xaa\xb4\xfa\xd1\x89Cc\x85\xdd\x19\x1a\xd3\xc4\x19\x1a\xcd\xa7\x06\x1a\xd7\x87\xe2N\x80\xd1\x96\xd2k4\xbf\x8ffKu\xdeN\xad&}zf\xd8\xd7\xc9S\x06\xf7;\xb8\"\xd9\xf7\xb6\xb1\xbd\xc7NIiw\xb3?d4m^\x16\xb3\xd9@\xa3\xb0K\xd2\x0d9N}\xcf\xb2\xc8\xea\x8c\x1di\xe2\x8c\x1d\xe6S\x83\x1d\xd6 B\xb7\xb9C?\xf48k\xe7%R\xdd0\x88\x95Q\xd3\x18B\xe5\xe3G\xd5\xe41Q\xca#\xe0\xce\x89\xb6\xe5\xf1\xc5\xd1!=\xa6.\xa3>\xe1!x\x8e\xbc\xeb\x8c\xeao\xf3b\xd7wM\xb8^\xce\x98!{\xa1\xda\x12\xca7\x81{}\x9d'\x08\xefefg\x80O\x13g\x807\x9f\x1a0\nHH\xfe\x88\xc5\xa1S@\xa2\xc8\xc3\x12\x1c\x1d\xf8\xea\xfc\xbd\xc4|\x03\xd2\xb9\x05.\x08\xa3\x9d'\xa8o5\x91\x9f\x14\x8d&$\xb1\xe7:E\x18\xc99\x9d1$M\x9c1\xc4|j0\xa4l:v0\x19=\xd5\xacE\x92ak\xf4\x1f\xe5\xaax\xa7\xe0^y\x14\xea\xae\x18\xf6S^\xa2\xc0@\xc5j\xf3L\x99O\x95\xae\x89+W\xea\x16\n\xe1\xaf\x9b\x9c*{e'\x88\x849\xa33\x10\xa6\x893\x10\x9a\xcf\x9f\nT:G\xd3H\x00\xdeI. t\x86\x17S\xecuR\xaa\x01\x1aj3\x9e\"<\x94\x98\x9d!\"M\xfc\xc4 b\xe4\x1cd\x87\x89T\xc3h\xffw\x0d\xfe\x89\x89\xfc\x9e\x08\xd90d\xa7Y\xac\x1b\xd9I}HH|\x03z\x0b;\xe5\xa5i\xf4\xb6\xd5z\x82\xc6\x99\xb29\x9be\x9a\xf8\x89\x99e\xdf\x91\xfb\xa4\xde=h\x0b\x126\xc6\x95\x18\xc6\xd1G\xe9\xd8\xb4\xbdlp/i\xfb\xa2`|\x99\x1e/\x9e\xb9.\x8b\xa9L\x89\x14P\xb9\xe6.Q\xdd\x1d\"}r\xad\n\x8d\x0d\x93\xdb\x86\xd6\x175\\\xbf&\xdbB6/Xn\xf9Y\xa9\x89?\xc4\x81$\x82l\xbe-\xdbq\xefv\xca-\x07\xb1e\x817}cwZ\xff\x0e\x06\x98\x94\xf0\xe1SG5\x0f\x1d\x8dYT\xb02\x96=\xee49k\xf6\xaa\xed\xfd\x18EW\x12KH\xfasL\x1f\xa68\xd8U\xaf\n\xa2X\x1fX\n\x1a&\x08\xfb\xa8X\xb1\xc7\xd6\x9e\xa1\xac\x81\x99\xe1\x9a\x18&\xc6\xe2XF\xbdf\xceKf\xd6\xb1G\x9f\xa7\xcf3\x8c\xe9Sr\x04\x83\xe4\xb0\xc3\xdcsF\xa8\x0b\xdbQ\xe0c\x08(/\x85\xb3`\x0c \xc9$\x0e\x9c5\x89\x1c\xed\x05\x0f!Q\x18\xab\x07\x94\xcec\xe5M\xdfE\xc6\xb1?\x9a9V5\xf4JK\xb0P\xd4n\x96f\xd3\xe5\xe4\xd8:\x88\x8c\x80\xbawB\xb5\x0f\xee\x15\xff\xd6Z\xf4UE\xe3z\x9b\xb56\xa0aJ\xf7\xc7\xfb#\xc5q\x83DN\xbf\xc2\xcd\x02\xb6\x99To\xe1\x1eGF\x11\xde\x07\x0c{\xcez/\xbb\xb7\xb6\xa8\xa5@\xdb\xb0\xdc.\xe2x\xef$O\xb9\x0f(- \x08\xc6\x16\xc7\xa3H(\xfe#\xc6\x14 1Hp\x19\x01\x0f\x82\xc3a\xbb\x0b\x05\xdd\x8aQ<\xe4\x14\xc61\x81'a\x04\x8ff\xc6\xe5\xa0\x9f\x95'\xee\x0d\xf0\xc7\xa3)|1\x9a\xc2\x97\xa3)|5\x9a\xc2_\x9d\x87\xd55\xaf>D:\xc0N#\x0f\xec\x06\x06\x95\xe70\x92\x81\x8c\xc0`\x16\xdfbJa\x14\xc8\x0e\xd5\x98\xa6\xbd\x0f5}\xfc%\x86\x18\x1c\x17G\xd8m\x9f'\x8c\xaaC\x90_\xdb\xf4\xa1?\xfd\x88\x13\xc6\x8f\xc18\x07\x17\xa8\x0c\xf6\x8e\x02\x92i\xa8\xdf+\xfe\xadS\x95\x1f\x18%\xb2\xb4\x00\xdc[U\xccI\xf3:\x9e\xd7\x8c\x05\x80iMwI\xcc\xdbZk-\xe8\xc5\xd9\xf9\xa5 $U L\xbc\x83\x93\\\xe3\x89\xae\xf7\x0ds\x9b\xc1T\x85>v6=]B\x85tx\xfb\xd4\xb3?e7\xe6\xc7!\x8co7\xc7!\x1c\x01\xbe9\x0ee\xad\x13\x0e\x87pr\xca\xca\x0b9\n\xe1\x88\xb3M\x87Ib\x0d\xe1n\x8e\xe5sF\x05P\x11\x8bK\xccq(F\xcf\x8bB|\xe7\x1c\xc7\xfc\x92\xf7\xfa'\xa7\xab\xbb\x8f0\x89\x9d\x83\xf5\x8d\x81\xc4\xad\x82\xce\x0e\xb4\xbe\xa8\x9cP\xed-\xe2\xe4\x14ko\x0c\xcf\x0f\xb7\xf6.j;\xe7S\xc3\xb6N\xc3\x9e\xa7\xd7oppY\x1fS\xbc\xb6\xe6\xd2\xda\x91U\x98fm'=\xd8l\xfe\x1b#\xd2c\xcd\xe6\xff\xd0U\x1e\x8b\xdbo_c+\xc7\x99\x9b\xd8\xc9\xff\x0e(\x08\x92]\x1fK\xe7[cz\x8b\xb2\xd6\xf1\xa1\xae5\x87\x93\xe7R\xe9\xee\xeb\x9e\xcd\xab\x95\x85iz\xa1X\xcd\x8ah6\x0b:6W\xf9A\xbav\xa6\x18\xa1G\xe3\xa7F%\xcajX\xc7\x99\xaf\x8d\xdd\xf1c\xea\x1d\x8dA\xcb\x12r+_z\x8f\xcc \x88(l\xaaL\xc0`'\x8c,\xb0\xb1;\\\xc7@\xc3jn\x16M\xb6^\xd2\xca\x116'?'\x90E3G\xe9\xc1\xdfV\x86\xf2-\xcd\xa3\xf3\x94/5\xb7r\x151\x16\x1c\x9d\x1f\xbd\x14\xdc\xca\xca\xa4{4V\xba\xceD\xbbO]\xf9)\xdf\x19\xafkw,\xc03\x07\x18&`\xad\xaf\xe1\x8ero\x9b|\x10\xb3\xd8+\x02,\xb6\xd0\xb6\xc8\x94\x13\xb8W\xfc\xdb2\x96?/{\x1a\xbd\xc7\xf3\xa1k_M\xadN.\xedtkl\xa1\x9c\xd8\x87\xeba\x9b\xfa\xb7,\x88\x87\xd5\xe9\xf2\xb6u\xdd\x01\x02H\xf62\x86\xf0\xa3TQ\xc4Q\x14\x0c\xf2;\xd3\x08\x18\x93\xb7h\xf4a\xf9\x90P\x89\xd7\xf5\xebM\x8dKg\xeb\x98\xd3~\x85\xef\x15\xff\xd6\x98Pe\xfa=\xc6\x8a\xac\x87t\xea\x1c~\xcb\xa4\xdf\xdaj\xb8%\x1eX\xee\x90tr\xec*\xd5\xbcHi\xd9\xd5&[\x8a\x9f\xa0*\xcbu\xfe!\xdd\xf1\xe2\xb0\xf5\xbd\xbbE\x19\x13\xde\x80C\xe3\xb0\xc5\xe9\xe8\xb7\xc8pvX\xc5\xb4\x8b\xb4\x03\xe4\xf5\x93\xa5\x0f{\x0b,\x8a\xd7j\xca\xeb\xa8r\xbf\xd78lm\xebk\x90\xaf\xa8\xcf\xd2\xb6^\x02\x8cj\x97y\xfb\xd1\xe8\x80\xd3\xbc\xe0`\xbb\x11z\x08\x92\xa5\xd4\xec]\xb3\xb7\xf4\x86\xb2\x1dE\xbb- \x00\xb9\x01\x01*\x11\xd1w\xdb},\xa4#\xf6\xd4%t\xa3\xa3\xb1\xd7\x0c\x9d\xcc\x03\x87P\x9fu\xb3\xc4\xd7\xcc\x03%';1\"\x1c\x16\xcb5\x8b\xebO\x956\xc2\xae\x9b\xed\x9f8\xf6\xeb)v\xa6TgU\xb7^\xea\xc6\xc9\x90IpH\xd4yD\xb1+K\"\x85\x1f\xe5v\x9c\x9a\xc8;\x87P\x0f\xee:\xb3SlK\xe4\xf6\x1e\x1f\x1b[s\xc9\x99d.\x0b~:\x18\xd3{\xb7+z\xd4&\xe1\x01.A\x97\x83\xa9\x03\xc8\xe2h*^\xad\xd2\xb5*\xe7\x08\xd1\x8e\xc3\xfd&A\\\x01\xf5\x0ew,Q\xbd\xdd\xd5mwZ\xa9\xbf\x01\xf7\xf6x\xd4]\xb3)?\xc1\x10\xd2\x8d\x99\xf4\x10@\xa1l\xdb\x08s\xf0\xe4\xe4\x8b[\x18wuy\xe0Z\xb1y\x12u\xbc\xa4\x86\x0f\xb6\xf6HB\x13\xe0\xce\xd0\x89\xe0\xa4[\x02\xd6&W\xe3\xb3\xa8\xff\xc7\xb4t\xdc\x91\xac\x13\xd9.xf\x86\xaf#E\x9c8n\x83\x8a\x03\xd3D\xf79\x8d4\xbeMn\xf4x\x9f\x9eX\n\x85\xd3{MN\x7f*M\xc2\xcd\xc2#\x8d\x10\xea\xb1\xc3>\x94\x8d\xa2P\xc4\xbe\x96\x98J\xaa\xd6\xe5\x9e\x88\xa1\x03\xbdl\xe5L/F\x1e\x99\xab\xee\xcc\xe4!\xd0\x9dj\xd0\x10d\xd1\xa7\xaeh?J\xe1\x9bT\x15&Q\xd6\xd6p-\xc3w\xf4\x1b\xfb%\xe7\xfe\x8dyH\xdc\xdeA\xdd\x04\xf0\xa6\xfa\x16yo1\xcc6{\xc8Y\x89z\xb6\xa4\xf0\x92\x04\x81y\x17\x7f\xb7\x05\x8a\xb89\xac\x8br\x8e\xad\x0d\xfa\xa3L\xdd\xde\x86\xab8D\xccGI\xa7\xeb\xd7\xfd3\xfe\xd1z\x8f\xf4\x86\xf7\x12\x0dl\xeaG\x03$z\xa9\xf7%\x81\xc0z)\xaa\xc2\x9e\xe5p\xb5\xacy\xea'$B\x94B\xe3%\xfb\xe1\xc9\x11\xff\xc2\xef\xfa\x98p\xe1\x7fe\x9eL\x94_\x95\xbd\xb5\x86G\x86\xca\xfa\xb1\xf5\xacv\x89\xc1\xc3\xa6O\x81\x9f\xfa)\xa9\xae\xbdP\xe0\x7f\xd2\x19EQ\xfb\xc8\xb0\x19\xce\xef\xa0\xb55OW\x95\xa8\x8f\x85\x82\x96\xd7\xe0\xech[\xd2\xce\x01\xb2\x1b~\xd8\xbd14Jj\x0b\x038:\xfe\xe1\xa6\x92\x01YvX\xead\xddo\x0f\xa9TK\xf3\x96Q\x02:\xa3\x9b['\xdev\xb7\xc4\xce\xec\x08l\xa9\x93\xd5\xf0F%5\x0fm\xd4T[:#V&\x04\xd9\xd0\xfan\xee\xb8\xef\xaa\x1b5\x89\xfb|\xdc\x93C\xb5\x8f\xcb\xb6\xf5Zv\xb8o\x8a6\x1e\xe3DF\xafhy%\xfa\xd5\xb8\xc3I\xd0\xe6\xdd\x16x\xe1\xc1\x85\xff\xfd\xef\xff\x11\xc8T\"\xd0\x86!\xc9\x96vF\xfa\x9c#\xe8\xc2\x87\xdcb\x89p\x10\xb0\x9d@\x8c\x02\x92\x0c\xe9{6:\xd2tv\x16P9\x99\x02\xa8G\xe8F'\\A~\xdd\xedG\xaa#\x0c\x17_ke\x1c \xc9\"DdcA\xdf\xaf\x96\\\xa2W\x8a\x1b\xc1\x10\xe8\xf3\n&\xe0\xb5n\xb3\xe2\x0c\xb6'\x02V\xbf\x811\xa2\x01\xaf\xe3p\x0d\\ \x92\xb9n\x1c\x11\xf0\x90\x90\x80o\x90\xaep\x89^3 O\x90o\x9f6\x12\xea\x06\xb1\x07\xc2I\xc2P\xda\xd9\xa7\xe4\x17'\x16P\xef\xb8M\xc2\xbe\xaa&\x06\xb4\xc3A\x00R\x1f\x07\xd0\xed\x98\xa4 !\xa1#\xcc\xe3*T< \x99\n\x96\xfc\nS0u\xdc\xd0\x9f\x07\xc3\xeda\x8cM{k\xbfO\x9e\x1e0\xecM\xd4\xd0\xc1a;\x9b\x8d7\xc3_SE\xf1e\x7f\xbd\x16!\x9e \x96\xa0\xe8S\xf4\xf0\x0c1\x9a|\x7f\xd42Gis\xe6\xec\xfc\xbc\x12\x08\xe7`\x80p2J\xc4\x9c\x03\x95(\x99^[+\xfe7&\x01xNL%i;\xdb\xd9\xd5\xb3\xb9W\xfc[\xeb\x84\x9dV\x80\xd3\x13\xde\xe7i\x16\xe7$\x8e\xfb\x94\xd72:\x82B/\x07\xbe\xe3)j\xdb\xf3\x17\xc6a_\\,\x8a\xb0\x90\x9ed^|\xf3\xea2e\xe4C\xab\x94\x8e\xe1\xfa\xf7\x17\xdf\xb9h\xb7\x80\nvMl\xb9\x03\xd7\x88\x1b\x8c\x92\x9ba{\x0f\xacr \x16\xb5\xf7\x9c\xb97\xdb\xa2`u\xeb\x14#\xf4m\x8am\x92\xf9E\xb3a$\xe6\x17\xcd\n$\xe6\x17\xcdj(\xcc/\x9a\x0d~\x19g~\xd1l~\xd1\x0c\xcd/\x9a\x95\xc59\xbfhfW\x8f\xf9E\xb3\xb2\xbe\xce/\x9a\xe9\xdcW@\xbd\xd2\x15\x1b}2\xad@3\xa3\xd7\xd5\xe5\x96\xddc\xdbt\xe3\xa8\xfb,\xc0z $\x89\xa7]>\x9a\x110e\x98\xa5\x13!\xc9\xba\xe5\xe2\x07\xf9\xd5\xc5\xc3\xaf\xfd\xbf~q\xf1\xf5\xdf\x1e{\xee\x17\x8f\xd7_>\x06\xfc\xb5\xfb\xf8\xaf\x7f\xfb\xfa!\xf6/\xdc\xaf]\xf8\xeb\xa3/\x1f>\xfe\xfakXc\xec\xbb_\x00\xfe\xf2+\xef\xab\xbfy_}\xf5%\xf6|w\x9d\xb6\xf0C\xab\xac:\xc4\xfa>+\xa6u[\xef5\x8d\xeb\xd6\x05\x87\x02\xe8V\xce\xdeu\xfa\x1ca\x9f\x1e\xab\xdd\xd8\x1f>)\x1e1\x15?\xf6B|9FX\x1fq\x1f\x12\x19\xb3\xd4\xde#V\xd9D\x8d\x1d\xba\xadr\x03\x109\x81\x0el&\x9b\x8e\xf6\x0dgsX\xfc\xd4\xe2\xf8\x8a\xa5\xbb%t\xe3\xc4\xb5Q\xa5\x1aW2\xc7\x8d\xee&\x9a\xdb \xc6\xfb\xae\x00\xdd+\xfe\xcdL\xbe\x1a\xe3h\x8c\xd5\xff\x12\x03\x1f$\x85\x0e\x0f\x18X\xcbM\xb5U[\xb35n\x8f\xffT(\xda\xb6\xe4\x9am\xae[\x84ZQy\xcbmn\x16I\x12\xe2\xd2sY\xc9jNQ\xfd\n1\xa3\xadW\xaeS*\x07\x8c]26\xc9Q\x07\x1c\xb2\x98\xcaA\x13pSt\xd0\x83~\xfd]Qk\x0f\x0d\xf4T\xa6\xbe|\xce\xf1\xce\xe9\xe1x\x15J\x1e\x0b\xfe\xbbD9\x1c@\xd6v0\xa5K3)k?\xb89\x80\x9d\xa3\x84\xf4\x9ez#\xb3Bz\x8a5q\xc5\x89\xb3m\xed\xe0\xda\xb2\xd3\xb7\xcc6\x04\xd8[\xa5\xf7\xa0\xd6\xb1\xff\x8c\xeekFd\xb3\xe0?\x8cG\xbdK`%+\x80\xdf\x12\x17\x9c\xa6\xc1j(m\x897\xb5\x8aX\xc1\x1e\x9d\xd6-\xdeO]o\xd6\xef\x8c\xfe\xd1\xd3\x99{\xc5\xbf\x16\x8c\x9edrrZa/\xacM~K]F}\xc2C\xf0\xae\xef\xa6n\xf4\x98S\x06\xed\xaex\x17\xe9\x8e\xadc\xc4\x13f\xbf_<\x94N\xd6g\xef}\xbd0\xf4q\x9c\xb2\xb7\xf0\xda\xf7\x84}\x1d\x891M\x1e\xbe\xfep\"\x07\xc3\xf27\xaa&Q\x81\xa3\x87\x9f9\xe4\xb7\x7f\x18\xb9Z\x1a#Z>nz~\xcb$\xa1\x1b'b\xbb\xd6\x89vW\xbc\xb1\xb7\xdc\x1a_wL\xbb\x93{\xb7\x83\x1am\x989\x9e\xaa4\x06\x13\xee\xa1/\xd5\x10\xbdc\xe4u\xccW\xb9\xac\xa1\x84{\xb4\xb3\xe8\xf1\x8eh\xa2\xca\xef\xc4\xbcm\x07\xa9\xd4\xcej`\x10\xf4\xf6\xcd\xf7\xe7\x1c\x04\x8b\xb9\x0b\x88\xe2\x10L\x90\x10\x13\xbf \xd8#\xe2\x01\x95\xc4'Id\x13E\x1b1_\x7f\x17\xc0 \x0e\xc8\xaf\xe0\xadhz\x90\x0c\xadc\xdf\x07\x8e\x92\xd7/\x97\xe8zK\x042\x9c\xa00\x16\x12\xb9\x8cJL(\xc2\x12\x05\x80\x85\\QF\x01\xad\x16\xe7\xab\x05r\xb7\x98cW\x02W\xe5\x00\x05XH$`\x13\x02\x95i\xa5o\xdf|\xff\x99@\x11\x96[C\x8eC\xc4A\x00\x95+\xaa\x92\xfd8\x08\xf6\xe8\x97\x18\x07\x8ag\xcf\xb4()\xaay\xbf\x8f\x05\"tE\xdf)\x12\xe7\x1b\xc66\x01,\xd3\x0eY~\x9b\xc4v\x7f\xf7\xc0p\xa0\x8b\x8b-\x8b\x03\x0f\xad\x01)\xb6\x91\x8b)\xa3\xc4\xc5\x01R\xa8\xb0\xa2\xf7a\xb9Y\x9e\xa9\xc6\xe8\xc0'\xab\xc5r\xb5@D \xca$\xc2\xae\x0b\x91\x04\xef\xc1rEW\xf4\x15E\x91j\x1fq\xe1\x0cI\xc0\xa1@\xb1\x88\xb1\xe28\xe2\xe0\xb20\"\x81\xaaD2\xcd\xef\x9aP\xcc\xf7\x08\x07\x81f= \xdf\"\xb7\xb0_Q\xb8\x8b\xc0\x95\x88H$\x19\x8a\x85fM_\xcfgT\xc2\x9d\x96\xd63\xba_\xa2\x7f\xb0\x1d\xdc\x02?S\xbc*\xd9\xa5\xb1?T\x11\xb9\x85\x15\x15\xee\x16B@\xef\xb6RF\xef\xce\xcc_\xf1\xee\x0c1\x8e(C&\xf5L\x07\x8bq1E,2\xb3\x94`\x8f\x04H\x14G\x08k\xdeVT\xdf\xc8\xe4\x86\xc5\x10G\xc2H[\xd7(Y\xaa\x0e\xa8`E\x08\x0b\xe43\x1d\x8b\xe6\x89\x12\xce\xffC\xaf\xfc\xbcJ%\xc0\x88\xb3[\xe2\x81\x97q\xa5~\xc4B\xc4!xKU\xe0\x19E\xff\xb8\xbe\xbeD\xdf\xbd\xb8F\x8c\xa6\xeaa\xf4bO \xf0\x10F\xff\xaav\xf1\xf5>\x82\x9f\xff\xf5\xf3\x8a\"\x13UAI.\x91\xb4Ay\xdd\xf6\x883/\xd6\x91+\x91\xbe\xb5f\xea\x8b\xa2\x80\xb88a\x9f\x83 \xa5\x03\x9ej\xa1\x8b]\xa5\xb1\x8c\xdd\xc4\x11\xe2z\x98\x13h\x8d\x05x k\xaa\xc2\xb7o\xbe\xd7\xd4\xb7\xf8V\x8b?,\xf4\xbbg:\x1e\xa7\xcc\xa8\xef\xb7\x8cx\x08\xd3\xbd*kHk\xb5\xe4\xe03\x0egiNE\x00K\xb2&\x01\x91{D\x01<-\xf35\xa0(\xb9)\xeb)\x02\x8c*\xfb\xa2\x1b\xd0\xa9Z\xa3\x96\xe8\xfe[\x01(\x19 TCT\xa7)\xa57\xbd\x86)\xdeh\xc6\xd7\x1c\xf0\x8d\xd2\xee\x84\xc2\xf2\x81\xea2\x13LC*\x0b\xf7c\xea\x1a\xd5P<$\xda\x9f\x8cY\xc1\x1e\xe1,\x92E\xa2\xa7\xcc\xf7\x89Kp\x90 \xc7:\xf6\x11\x07\x85\x07p\xa6\xa3\x85\x12\x99\x12\x89\x95\x08\x95\xf6\xe6\n\xb5\x86\x0d\xa1T\xb1\xb3#r\xbb\xa2*ei\xfa\x19GD,]\x16j{\xbb\xd2\xaa$\x90> \xa9T\x93V\xf5\x1c\xddW\x84\xb7\x80 \x8c\xe4>\xd1\xbd\x07($\x9b\xadDkXQ]\xbb\xaa\x05\x910\n@!\x91\xee\x7f$\"p\x89O\\$ \xc4T\x12W\xd4\x843\xea\x12\x98\xa1\xc6\xd7\xd0\xeb\x0bM\xf0\xfd\x83\xd2\xf45\xa4q:\n\x88\x8c\xaa\x80\x9c` ^\xb3[H\x99O:|i\xf1f\xb2\xc1\xa7R\xe3\xbbgt\xff.\xc5p\xa1\xcc\x03\xf35\x91\\\xe9aC\xed\xa9\xfd\xe3\x80%\xbd\x86\xf0\x8a*c\xd5\x80a*Y7\x8e1\xd9\x90\xa2z\xf62U\x9a\x80\xacu\xdd V\x08$\xe2(b\\\xc3b\x84\xdd\x9b\xf3\x98\xaa?\n\x0c\x93 *\xa9\x06\x1a\xf0f>\x8a\xa51\x9cT\x85\x85\xb2\xd0|A\x06m\x80\x02\xd7\x81kC\x90[\xe6\x89\x947ES\xcbOq\xf4\xc2\xecu\xa3\x87O\xd0\xa5\xaaP)qR7\xce\x9aO(z\xfe\x1f\xff\xa1\xf3+\xe1\xbed\x0c\xf9\x8c\xa1\xa7h\xb9\\\xfe\xdd\xfc\xa6\x88b\xbaO\xfe\xc3t\xbfT\xe4^r\x16\xde\xf7\x19{\x90\xfc\xbe\\.\xcd\x17\xe2\xa3\xfb*\xd3[]\xd55\xbb\xbf\x8a/.\x1e}\xa5\xb2>@\xefM\x9eB\xf6\x0fEV\x1f\xb5\xb0\xfa_\xf8\x16w\xe1\x15=\xd5c\x8d\"\xd0\xc8#\x11\xf7_2\xb6t\x03,D\x91;CV\xe50\\\x14r\xfd\xbd\xc06J\xf9~\xdc\xc2\xf7\xe5^n\x19\xcd87\xe4_2v\x7f\xb9T\xb8\x95\xc8\xd5p}\xffAY\xd0\xba\x01\x87\xfc\xab\xe4W\x86\xfdo_\\=\x7f\xf3\xea\xf2\xfa\xc77\x0f\x9e\xa4-\xc8{\xa0P>\xa1P`\xfc\x8b\x16\xc6\xbfc)\xcf\x9a\xe9'O\x91\xe9\xcdh\xbd|\xc9\xd8\xfb\xe5r\xf9!I\xc6t\x7f\xa6\x06&\x95\x07\xd3}\xb4^\xbe\x86]\xb1n\xe2\xeb\xe4\xff\xf3\x14Q\x12\xe4\xa2\xce\x1b\x85RR\xf9/\xb6:?\x94\xe9\x99\xea\x96oi\x88\xb9\xd8\xe2\xe0\x9a\x99\x1e\xefP\xd9\x8a*\x87J7:\xb5\xa3t\x80G\xeb=\x8a\xaa\x16\xadC\x92\xad\xf7(\xd9\xfaR\xe3\xc0\x8a~f\x81\xfas\xe5\xf3-u\x82\x1a\xb9>S\x8eE\x06#\nb\x94\xb8\xd5\x0fF\xe4+\x9a\x991\x0d\xf6\xa9#t\xe08f#!\xc2\xbe\x043Hh\x7f\xf4\xb3\xf3\xcfV4\xc1\x90\xb4\n\xe3^%\xc7]\xd0j\xe13\xb6\\c\xae\xb9\xbb;\xdf/\x7f]-L{\x8cWb<&M|\xb5\xd0\xa9ZOV\xf4\xbf\xae~|\xbd\xa2O\x9f>}j\xa4\xa5\xfe\xcf=\\3\xf00\xa5\x8d\xc8\xe0\xb0q`b\x91\x00'\x87M\x1c`\xbe\xa2\x87ET\xb2\x079\x9a\x9e!\x08\xd7\xe0y9\xae\x9e%\xb0LW\xb4\x00~\xbef\xf8\xdd\x7f*\x96\xdf%\xbec\x86\xfeE\x11,S-\x7f\x92\xea\xb0\x12\xb6R\xec\xdc\x01\xf3I\x00\x89E\xa7Z\x7f \\0\x9a\xebL2S\xf0 \x17\xd2\xd1\x12z\x8a\x1e\xfe\xbd\x92\xaa\x0f $\x89\x8fJ\x10\x81PNj\xb5\xd0\\\xaf\x16O\xd0ja\xd3\x9b2cK\xc3\xcajq\x96\x13\xd0l\xbc\xc6\xa1!\x12_\\G\xf7\x95\xfe\xa7M9p\xb9\xd3Y\xd5\xcf\xff\xfa\xf9\xc1\x931\xfdT&W\xea*\xdd\x1eC\xe3\xe1\xf2\xd1\xc3Gb\xb5H\xa4\xbe\xb0\xce\xbd_\xc7A\xf0S\xc55\xabs\xcb,{\xf9\xaf\xdf~\xff\xbd\xf3\xd3\xb3\xef\xdf\xbeH\x9d'\xebf}![\xadG\x95qb\xe67H\x10\xba @2\x8aT\xb5`\xda\xaa: \xebc\xdd\x154\x0e\x82\x04\x00|\xe3\xc4\xae\xe8\xbb\x84\x8eV\xa6\x98\x92t\x14\xac\xc3\x12U\xb0R\xbf\xce\xf6N\x11\x7fg\xca~\x8e\xf2F